【摘要】:图8-13字符数组存放字符串2.用字符指针指向字符串C语言对字符串常量是按字符数组处理的,在内存中开辟一个字符数组存放字符串,其首地址可保存在字符型指针变量中。图8-14字符指针指向字符串虽然用字符指针变量和字符数组都能实现字符串的存储和处理,但二者是有区别的,不能混为一谈。赋值方式不同对于字符指针变量,可采用下面的赋值语句赋值。
在C语言中,既可以用一个字符数组来存放一个字符串,也可用一个字符指针变量来指向一个字符串。
1.用字符数组存放字符串
例如:
我们在前面介绍过,字符数组是由若干个数组元素组成的,在内存中占有一片连续的空间。字符数组用于存放字符或字符串,字符数组中的一个元素存放字符串中的一个字符,如图8-13所示。
图8-13 字符数组存放字符串
2.用字符指针指向字符串
C语言对字符串常量是按字符数组处理的,在内存中开辟一个字符数组存放字符串,其首地址可保存在字符型指针变量中。例如:
在这里,字符指针变量s存放的是字符串常量的首地址,而不是字符串的内容,如图8-14所示。
图8-14 字符指针指向字符串(www.xing528.com)
虽然用字符指针变量和字符数组都能实现字符串的存储和处理,但二者是有区别的,不能混为一谈。
(1)存储内容不同
字符指针变量中存储的是字符串的首地址,而字符数组中存储的是字符串本身(数组的每个元素存放字符串的一个字符)。
(2)赋值方式不同
对于字符指针变量,可采用下面的赋值语句赋值。
对于字符数组,虽然可以在定义时初始化,但不能用赋值语句对字符数组整体赋值。下面的用法是非法的。
字符数组赋值可用strcpy()函数。例如:
(3)指针变量的值是可以改变的,字符指针变量也不例外,而数组名代表数组的起始地址,是一个常量,常量是不能被改变的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。