1.为什么变量的地址都是模4的?
因为CPU只能访问模4的地址,所以变量的地址模4让CPU效率更高
2.指针就是地址吗?
不是,指针 = 地址 + 地址的解释方式。
3.*p是什么?
*p是把p的内容当地址,再取内容。属于间接访问,访问了两次,第一次访问p的内容,第二次访问的是把p的内容当地址再取内容的内容。因为访问了两次,所以指针效率比直接访问要低。
4.野指针是未初始化的指针。
5.数组和指针
-
数组首地址是有解释方式的地址常量,就是常量指针。
-
指针减指针的值是整型,是两个指针之间的元素个数,不是常量。计算公式:P1 - p2 = ((int)p1 - (int)p2) / sizeof(type)不管指针写的多复杂,产生的汇编代码都是计算后的结果,很简单。
-
字符串常量不能被重新赋值。Char sz[] = “hello”; sz[1] = ‘a’;会报错。
-
Printf(“%d”, sz);显示sz的值,%s就把sz当字符串的首地址,显示字符串。
-
指向二维数组的指针:int (*pAry)[3] = ary;然后这样写就是正确的了:pAry[i][j]
阅读(973) | 评论(0) | 转发(0) |