这两天敲代码碰到了一个这样的问题
代码如下:
通过比较第一个程序与第二个程序差别在于, 第一个修改的是 * p=20, 第二个修改的是 p20, 最后打印出来的 num1 的结果带 * p 的为 20, 带 p 的为 10.
这是因为通过 * p 改变了 & num1 地址里的变量, 而修改 p 则对地址里的变量的值没有影响
另外, 变量指针长度的计算:
- #include <stdio.h>
- #include <stdlib.h>
- int main(){
- printf("%d\n", sizeof(float *));
- return 0;
- }
在 32 为操作系统下, 指针变量 (char,float,double,int,long) 的长度为都 4 个字节.
64 位操作系统下, 这些指针变量长度位 8 个字节.
来源: http://www.bubuko.com/infodetail-2872170.html