C语言之指针和数组 2

字符指针和函数
该节主要介绍字符串数组的指针,即关于字符串处理的函数的指针。

1、当字符串出现在程序中时,例如
    printf("hello, world!");
是通过字符指针获取到它,printf函数接收到一个字符数组开始的地址,也就是说,字符串常量是通过指向它的首元素的指针获取到的。

2、字符串常量没有必要必须作为函数的参数,通常可以这样定义:
    char *pmessage;
    pmessage = "now is the time";
将指针变量pmessage指向字符串常量“now is the time"的开始地址,这种描述并不是字符串的复制,C语言不提供任何关于整个字符串的操作。

3、 char amessage[] = "now is the time";
    char *pmessage = "now is the time";
amessage定义的是一个数组,大小是能容下初始化时的字符和‘\0’,数组中的元素可以改变,但是amessage始终指向那一块内存区域;而pmessage是一个指针,初始化时指向一个字符串常量,当然随后该指针也可以修改指向其他地方。

4、字符'\0'即NULL,ASCII码是0.

5、关于*和++或--的操作:
*t++:t指向的值先取出,然后t++;
*++t:t先自加,然后取出自加后的地址指向的值。
在栈中的习惯用法:
*p++ = val;     /* push val onto stack */
val = *--p;     /* pop top of stack into val */

6、在strcmp/strcpy函数中既可以用数组的形式操作,但习惯用法是运用指针来操作,例如:
strcpy函数中:
数组方法:
while ((s[i] = t[i]) != '\0')
{
      i++;
}
指针方法:
while (*s++ = *t++)
{
     ;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值