1:
#include <stdio.h>
#include <string.h>
int main(void) {
char a[]="123456789";
char *p = "123456789";
char a2[100] = "123456789";
printf("%d\n%d\n%d\n" ,sizeof(a),sizeof(p),sizeof(a2));
printf("%d\n%d\n%d\n" ,strlen(a),strlen(p),strlen(a2));
return 0;
}
输出结果:
10
8 注意这里是求一个指针的大小
100
9 strlen都是以\0哨兵结尾
9
9
:2:
#include <stdio.h>
#include <string.h>
int main(void) {
char a=255;
a++;
printf("%d\n" ,a);
a++;
printf("%d\n" ,a);
return 0;
}
输出结果:
0
1
3:
ifndef define endif作用
为了避免重复,不过不是避免重复声明,而是避免重复定义。通常而言,C的所有声明都是可以重复的,只要重复的声明完全相同就行。然而定义则不可以重复,就算是完全相同也不行,重复定义会导致编译错误。
多次包含可能会引来重复定义。比如a.h文件中包含了stdio.h和b.h,而b.h文件中包含了stdio.h,那么编译b.c文件时,stdio.h就被包含了两遍。我们熟知stdio.h头文件中有FILE类型的定义,于是FILE被定义了两遍,会出现编译错误。在stdio.h头文件中用