面试在即,总结一波C的基础代码
程序员文章站
2022-05-27 08:21:28
面试在即,总结一波c的基础代码
#include
#define me 2017 //宏定义
void main(void)
{
const int pi = 3.14;/...
面试在即,总结一波c的基础代码
#include #define me 2017 //宏定义 void main(void) { const int pi = 3.14;//常量不允许重复赋值 printf("%d\n", me); printf("内存地址: %x\n", me);//小端存储法 一个地址一个字节,高地址存高字节,低地址存低字节 }
include 目的是引入头文件,而头文件包含了我们所需要的函数,比如打印函数 printf,与php不同的是php是全局可以使用所有方法,不需要引入。定义的me为全局常量,pi为定义方法范围内的常量。main()为程序执行时候开始的代码,void代表不需要传参,可以使用args来给方法传参,就像使用linux命令行时后面带的参数。
#include void main(void) { printf("%4d%4d", 4, 5); //右对齐,占4位 printf("%-4d%-4d", 4, 5); //左对齐,占4位,不足用空格补充 printf("%-04d%-04d", 4, 5); //左对齐,占4位,不足用0补充 printf("%6.4f", 4.0054); //左对齐,占6位,保留小数点后4位 printf("%.4s", "hello world"); //左对齐,截取4位 printf("%ld", 12345678); //左对齐,输出长整型 }
printf 为打印数据方法,可以格式化输出内容,类似于php的sprintf()
#include void main(void) { char ch; putchar('a'); //输出字符 putchar('\n'); ch = getchar(); //接收字符 putchar(ch + 1); }
我们可以使用 getchar 在程序执行时候接受一个字符,并使用putchar打印一个字符。
#include #include void main(void) { //读到字符串首地址,从首地址开始输出字符直到读到\0 puts("hello c"); //输出字符串并换行 char buf[4]; // buf实质为首地址 gets(buf); puts(buf); printf("%s", buf); //从首地址开始读 }
与上面方法不同的是 gets 可以接收字符串,使用puts打印字符;字符串存储的最后一个字符为\0,这是字符串方法从内存读数据判断结尾的依据。
#include void main(void) { double d; printf("int %d\n", sizeof(int)); printf("char %d\n", sizeof(char)); printf("float %d\n", sizeof(float)); printf("short %d\n", sizeof(short)); printf("long %d\n", sizeof(long)); printf("long long %d\n", sizeof(long long)); printf("double %d\n", sizeof(d)); }
sizeof()可以获取到传参的占据的字节长度,sizeof(int) 与 sizeof(1) 等价
#include void main(void) { int num; char ch; scanf_s("%c", &ch); num = ch; // scanf_s("%d", &num); // printf("%d", num); // printf("%c", ch); switch(num) { case 1: printf("type of int"); break; case 97: //a printf("char turn to int\n"); break; default: printf("nothing match\n"); break; } }
switch() 为分支判断,其中ch为char类型,num为int类型,ch赋值给num,低类型(字节少)向高类型(字节多)转换
#include void fn(int i); void main(void) { int i = 65; fn(i); } void fn(int i) { putchar(i); }
自定义方法时候,需要在main前定义方法头,之后在main后面写具体的代码逻辑,或者在main前直接写具体代码不用再定义方法头。
推荐阅读