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


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

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

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

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

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

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM