1.int a =10
int *p = &a;
p+1指的是p跳过一个int类型
而char* *pp = &p;
说明了pp+1跳过一个char*类型
2.二维数组也是数组,之前对数组名的理解也是适合的
3.但是二维数组存放的可以说成是一维数组
所以对二维数组arr[3][5]
sizeof(arr[0]);所得到的是二维数组第一行的总内存字节大小(因为这里边可以看做是sizeof里边单独存放了一个一维数组的数组名)
而没有特殊情况的话,a[0]默认就是a[0][0];
后边自己看C语言群
搜二维数组数组名默认是往后拓展一个
4.sizeof后边括号内的表达式是不会真正计算的
比如上边的3中,
在后边加上一个
printf("%zd",sizeof(arr[4]));
输出为16
5.结构体指针变量建立的例子搜
6.-4用%p打印的话
输出为FFFFFFFC
因为%p输出地址,输出对象为-4则输出补码11111111111111111111111111111100
转化为16进制则为FFFFFFFC
7.地址减地址得到地址与地址间的元素个数
而小地址减大地址得到的是负数
8.&二维数组得到的是整个二维数组的地址
9.而二维数组首元素的地址就是第一行的地址,加1就是第二行的地址
10.对二维数组arr:
arr[1]==*(arr+1);(绝对)(这里的arr[1]就是第二行首元素的地址)(更绝对)
11.要会画图,在做作业和做 编程题 时,画图很重要 例子搜画图很重要
12.指针结束