1.数组建立以及strlen:
char arr1[]="bit";
char arr2[]={'b','i','t'};
char arr3[]={'b','i','t','\0'};
1)其中arr1数组需要注意默认为4个字符,和arr3包含的内容是一致的;
2)arr2末尾没有\0,后面是数组越界的过程,会产生随机值,如果用strlen计算的话,计算的结果为随机值,因为无法确定\0的位置;
3)strlen函数返回值为size_t为无符号数;
2.getchar
1)getchar返回值为字符的ascll码值,返回为整数类型;
2)getchar如果读取失败或者结束,则返回EOF;这里还存在缓存区。之后细谈;
3.sizeof与数组
1)sizeof(arr)代表数组总共占得字节,sizeof(arr[1])表示一个元素的字节大小;
2)数组建立时,数组是随着下标的增加,由低地址到高地址前进建立的
&arr[0]=012ffe9c;
&arr[1]=012ffea0;
&arr[2]=012ffea4;
但在存储中,是由下到上是低地址到高地址,也就是说,数组的建立是从下向上建立的;
4.二维数组
arr[10][10];其中arr[1]表示arr[1][0]的地址;对应的arr[1]+1,我们就不难理解就表示arr[1][1]的地址;sizeof(arr[0])抽象来说就是这一行,sizeof(arr[0][0])这个表示一个,sizeof(arr)表示二维数组整个;
5.位操作符
1)&---按位与---0是老大;
2)|---按位或---1是老大;
3)按位异或---同0异1;
6.int*arr[10]和int(*arr[10])的区别
1)前者为指针数组,是元素为指针的数组,后者是数组指针,是指向arr[10]首元素地址的指针;