首页 百科知识 指向字符串的指针变量

指向字符串的指针变量

时间:2024-10-16 百科知识 版权反馈
【摘要】:对字符串常量的访问实际上是通过该字符指针进行的,因此,字符串常量具有地址特性。使用printf函数输出时,%s表示输出字符串,输出项为指针变量point。因此,输出指针变量就是输出指针变量当前指向的整个字符串,输出“*指针变量”就是输出指针变量当前指向的单个字符。

5.4.2 指向字符串常量的指针

C语言中,使用一个字符串常量时,C编译程序对该字符串常量分配一片连续的存储空间,并设置了一个指向该字符串的第一个字符的指针,该指针存放了字符串常量存放在内存数据区中的起始地址。对字符串常量的访问实际上是通过该字符指针进行的,因此,字符串常量具有地址特性。

例5-13 字符串常量的输出。

参考程序为

img341

程序运行结果:

  This is a string

将字符串赋予字符指针point,并不是将字符串存放到指针point中,而是将指向字符串的指针赋予指针变量point,即是让point指针指向字符串的首地址。

使用printf函数输出时,%s表示输出字符串,输出项为指针变量point。printf函数首先输出point所指向的第一个字符,然后point自动加1。指向第二个字符并输出该字符……如此直至遇到字符结束标志'\0'为止。因此,输出指针变量就是输出指针变量当前指向的整个字符串,输出“*指针变量”就是输出指针变量当前指向的单个字符。

使用字符数组处理字符串时,由于数组的长度是固定的,若要在程序中多次使用同一数组来存放不同长度的字符串,则必须按可能的最大长度来定义数组。当不能预知字符串长度时,定义长了则造成存储空间浪费,定义短了则可能出错。

使用指针来处理字符串比较灵活。由于指针在程序中可以被重复赋值,而且每一次都只存储一个新字符串的首地址,而不关心这个字符串的长度。

例5-14 改写例5-13指向字符串常数的指针。

参考程序为

img342

程序运行结果:

img343

img344

程序输出了不同长度的两个字符串。因此使用字符串指针处理字符串,不仅效率高且灵活方便。

例5-15 字符串的复制。

参考程序为

img345

程序运行结果是:

img346

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈