数据在内存中的存储是按类型分配空间的,例如:int型变量一般分配四个字节,数据会存储在这四个字节中。同样的;数组的存储也是按照类型来的。
例如:int ar[10] = {1,2,3,};
对于该数组来说,因为是int类型的数组,所以会占用40字节的空间,每4字节存储一个int类型元素。由此引出字符串数组。
对于字符串数组来说,元素是char类型,每个元素占用一个字节。引出指针和字符串数组加一的问题
先看结论:在C中,指针加一指的是增加一个存储单元,对数组而言,这意味着加一后的地址是下一个元素的地址,而不是下一个字节的地址。
解释:存储单元的意思是对应类型的空间,比如int类型的指针,一个存储单元是四字节空间。对于字符串变量,里面的每一个字符都独立占用一个对应类型的存储空间,用指针表示法定义一个字符串变量后,指针++就是下一个元素的地址。而且对于自增这种写法,只有指针表示法可以用。
原文:https://www.cnblogs.com/crine/p/11642450.html