|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
按照老师P21节课:指针 的内容,我运行下发代码的结果如下。 我的疑问如备注。 烦请指点
a=F
a=6487567
a=123
a=6487560 //疑问:整型123占4个字节,可是560与567相差6个字节,为何? 这两个地址不连续分配吗?
size of pa=1
size of pa=8 //疑问:老师课上和书上都说指针变量长度占4个字节,为何我运行下来sizeof(pa)=8? 而不是4?
size of pb=4
size of pb=8 //疑问:同上
- #include <stdio.h>
- int main()
- {
- char a='F';
- int b=123;
-
- char *pa=&a;
- int *pb=&b;
-
- printf("a=%c\n",*pa); //打印指针地址指向的值,即a
- printf("a=%d\n",pa); //打印指针地址,十进制
- printf("a=%d\n",*pb);
- printf("a=%d\n",pb);
-
- printf("size of pa=%d\n",sizeof(*pa)); //打印a的size
- printf("size of pa=%d\n",sizeof(pa)); //打印指针变量pa的size
- printf("size of pb=%d\n",sizeof(*pb));
- printf("size of pb=%d\n",sizeof(pb));
-
- return 0;
- }
复制代码
这两个地址不连续分配吗?
哪本书上说过变量的地址是连续分配的吗?
因为你的系统是64位的,64位系统指针是8个字节
|
|