指向字符串的指针 和 字符数组的区别

如题所述

指针就是内存单元的地址,通过这个地址就可以存取它所指向的数据。指针有指针常量和指针变量之分,指针常量就是一个具体的地址值,指向确定的某个内存数据;指针变量是用来存储指针值的存储单元,可以存储不同的值,以用来指向想让它指向的数据。

数组是内存中的一片区域,用来存放一些相同类型的数据。数组名是这片区域的首单元的地址(这个首地址在程序运行时是确定的、固定的,不变的,即一个指针常量),也就是这个区域里面第一个数据的指针。

根据上面的描述字符数组就是一个指针,他指向该数组中的第一个字符。

接下来要说的就是字符串,C语言中,字符串是以特殊字符'\0'结尾的一串连续的字符,通常用一个指向其起始字符的指针来表示。另外,C语言中经常用字符数组来存储字符串,而数组名就成为了这个字符串的指针了

总结一下,字符数组(那一片存储区域)可以用来按任何顺序或规则,存放任何字符。
当然字符数组也可以用来按字符串的规则,存放字符串,这时,数组名就成为了字符串指针。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-18
可以对字符数组用 sizeof 来获取字符数量,还有字符数组中的字符是可以改变的
相反,字符串指针两者都不可以本回答被提问者采纳
相似回答