关于string函数族实现的准备

     字符串常量是一个字符数组,例如:

     “Hello world”

在字符串的内部表示中,字符数组以空字符'\0'结尾,所以,程序可以通过检查空字符找到字符数组的结尾。字符串常量占据存储单元数也因此比双引号内的字符数大1。

     字符串常量最常见的用法也许是作为函数参数,例如:

     printf("Hello world\n");

当类似于这样一个字符串出现在程序中时,实际上是通过字符指针访问该字符串的。在上述语句中,printf接受的是一个指向字符数组第一个字符的指针。也就是说,字符串常量可以通过一个指向其第一个元素的指针访问。

     char *message;

     message = "I am hungry";

     将把一个指向该字符数组的指针赋给message。该过程并没有进行字符串的复制,而是只是涉及到指针的操作。C语言没有提供将整个字符串作为整体进行处理的运算符。

     下面两个定义之间有很大的差别:

     char *amessage[ ] = "I am hungry";    /*定义一个数组*/

     char *pmessage = "I am hungry"        /*定义一个指针*/

上述声明中,amessage是一个仅仅足以存放初始化字符串以及空字符串'\0'的一维数组。数组中的单个字符可以进行修改,但amessage始终指向同一个存储位置。另一方面,pmessage是一个指针,其初值指向一个字符串常量,之后它可以被修改以指向其他地址,但如果试图修改字符串的内容,结果是没有意义的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值