简单理解C语言字符串
C语言中不存在字符串这种数据类型,但存在字符串的概念,即字符串常量。C语言中的字符串都以字符串常量的形式出现或存储在字符数组中。字符串常量本质上是一个字符数组,但它的内容和长度在初始化的时候就已经被固定了,不可修改。可以通过一个指向字符串常量第一个元素的指针来访问该字符串常量。
看下面的一个例子:
首先我们定义了一个字符指针
p
。通过
"Mario"
语句在内存中开辟出一块空间,在这块空间中新建了一个字符数组,字符数组的内容为
'M' 'a' 'r' 'i' 'o' '\0'
,同时将字符数组的第一个元素
'M'
的地址赋值给了字符指针
p
,使字符指针
p
指向了该字符串的第一个元素
'M'
。此时,可以通过
printf("%s",p)
语句输出该字符串。
但是,由于之前提到的C语言中不存在字符串类型,所以不能直接将一个字符串通过
=
赋值给一个字符数组变量:
不过,在初始化字符数组的时候,我们可以通过下面的形式对字符数组进行初始化: