指针加一和数组加一及其内部存储

百般思念 提交于 2019-11-30 22:11:14

数据在内存中的存储是按类型分配空间的,例如:int型变量一般分配四个字节,数据会存储在这四个字节中。同样的;数组的存储也是按照类型来的。

例如:int ar[10] = {1,2,3,};

  对于该数组来说,因为是int类型的数组,所以会占用40字节的空间,每4字节存储一个int类型元素。由此引出字符串数组。

  对于字符串数组来说,元素是char类型,每个元素占用一个字节。引出指针和字符串数组加一的问题

       先看结论:在C中,指针加一指的是增加一个存储单元,对数组而言,这意味着加一后的地址是下一个元素的地址,而不是下一个字节的地址。

  解释:存储单元的意思是对应类型的空间,比如int类型的指针,一个存储单元是四字节空间。对于字符串变量,里面的每一个字符都独立占用一个对应类型的存储空间,用指针表示法定义一个字符串变量后,指针++就是下一个元素的地址。而且对于自增这种写法,只有指针表示法可以用。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!