采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
“指针的物理意义”那张贴图有问题吧,虚拟地址空间是连续的,怎么会是间隔4个字节,如果是char类型只占一个字节呢,老师还是弄清楚再讲吧,不要误导学生了。
C语言这部分知识是带同学门回顾一下,而不是讲C语言,不会讲那么细
32位总线最大寻指是4字节,现在基本都是64位,最大8字节;32位的指针每次加一就是4个字节(void*)
自己去做个实验,有问题就好好问,不要挑衅!
32系统指针变量占4个字节,但是指针加1只是会跨过指针原始类型的字节空间。char类型指针加一就会指向紧接着的下一个地址。 还是那句话地址空间是连续的,不是按4字节为单位分割的。 额 另外 这没有挑衅的意思吧。。。 #include <stdio.h> int main(void) { char array[16] = { 0, }; char * p_array = array; printf("%p %p %p\n", array, p_array, p_array+1); return 0; } 输出: 0045F790 0045F790 0045F791
你知道就OK了,我课程中啥时候说地址不连续了?你用32位的指针,它每次就是跨4字节,你强制转char*它就是一个字节,你指定int16指针它就跨两个字节跳。
登录后可查看更多问答,登录/注册
掌握音视频采集、编解码、RTMP传输协议等核心基础
1.7k 17
1.1k 12
1.2k 11
1.1k 11
2.1k 10