注意点:
1、带*类型的变量宽度永远是4字节、无论类型是什么,无论有几个*.
2、带*类型的变量,++ 或者 -- 新增(减少)的数量是去掉一个*后变量的宽度
3、带*类型的变量可以加、减一个整数,但不能乘或者除.
4、带*类型变量与其他整数相加或者相减时:
char* a; short* b; int* c; a = (char*)100; b = (short*)100; c = (int*)100; a = a + 5; b = b + 5; c = c + 5; printf("%d %d %d", a, b, c); //105 110 120 char** a; short** b; int** c; a = (char**)100; b = (short**)100; c = (int**)100; a = a + 5; b = b + 5; c = c + 5; printf("%d %d %d", a, b, c); //120 120 120
5、两个类型相同的带*类型的变量可以进行减法操作,想减的结果要除以去掉一个*的数据的宽度.
char* a; char* b; a = (char*)200; b = (char*)100; int x = a - b; printf("%d\n", x); //100 short* a; short* b; a = (short*)200; b = (short*)100; int x = a - b; printf("%d\n", x); //50
6、带*的变量,如果类型相同,可以做大小的比较。
7、带*类型的变量,可以通过在其变量前加*来获取其指向内存中存储的值.
8、在带*类型的变量前面加*,类型是其原来的类型减去一个*.
9、&arr[0]代表取数组中第一个元素的地址,可以省略为数组名.
10、*(p+i) = p[i].
11、数组做为参数时,传递的是地址.数组做为参数时,应该传递数组的长度.
12、字符串:编译器后在后面添一个 00 做为字符串的结束标记。%s:打印一个字符串,直到内存为 0 为止;
文章来源: https://blog.csdn.net/yuqian123455/article/details/89784649