请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

“指针的物理意义”贴图有问题

“指针的物理意义”那张贴图有问题吧,虚拟地址空间是连续的,怎么会是间隔4个字节,如果是char类型只占一个字节呢,老师还是弄清楚再讲吧,不要误导学生了。

正在回答 回答被采纳积分+3

2回答

李超 2021-10-09 17:06:18

C语言这部分知识是带同学门回顾一下,而不是讲C语言,不会讲那么细

0 回复 有任何疑惑可以回复我~
李超 2021-10-09 15:11:58

32位总线最大寻指是4字节,现在基本都是64位,最大8字节;32位的指针每次加一就是4个字节(void*)

0 回复 有任何疑惑可以回复我~
  • 李超 #1
    自己去做个实验,有问题就好好问,不要挑衅!
    回复 有任何疑惑可以回复我~ 2021-10-09 15:13:37
  • 提问者 weixin_慕村7137934 回复 李超 #2
    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
    回复 有任何疑惑可以回复我~ 2021-10-09 16:03:04
  • 李超 #3
    你知道就OK了,我课程中啥时候说地址不连续了?你用32位的指针,它每次就是跨4字节,你强制转char*它就是一个字节,你指定int16指针它就跨两个字节跳。
    回复 有任何疑惑可以回复我~ 2021-10-09 17:04:04
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信