对于C语言的指针理解----字符串

一、字符串与指针

1.对于字符串的理解

对于字符串而言,c语言并没有为其提供任何专门的表示法,完全使用字符数组字符指针来处理。

2.字符数组和字符指针

字符数组:用字符串初始化字符数组,是把此字符串依次存入字符数组所占空间中,这个数组是有名字的。

字符指针:在内存中开辟了一个字符数组用来存放该字符串常量,但是这个数组是没有名字的。不能通过数组名来引用,只能通过指针变量来引用。

(此处我们就不解释字符数组了,主要来讲解字符指针)

2.字符指针的定义

char *p="china";

或char *p; p="china";

3.字符指针的使用

字符指针使用时,可以像使用字符数组时使用就行。

char *p="china";

printf("%s",p);     或者      printf("%c",p[2]);

注意:

1)在字符指针中,并不是把这个字符串“china"的内容给了它,而是将这个字符串的首地址给了指针变量p;

2)

char ch[10];

ch="china"   //是错误的,因为ch为一个数组名,是一个地址常量,不能被赋值,也不能改变。

3)

char *p="china";

p[1]='z'; //是错误的,用字符指针定义的字符串,字符串的内容是不改变的,因为,用字符指针(p)定义的字符串(china),仅仅是将这串字符(china)的首地址给了字符指针(p),而不是将它的内容给了字符指针(p),所以内容是不可以改变的

4)

char ch[10]="china",*p;

p=ch;

p[1]='z';    //是正确的,字符数组定义字符串,是在定义数组的同时便开辟了空间,将字符串存到数组元素中,而元素是一个变量,所以在数组定义字符串的时候,内容是可以改变的,从而当数组定义字符串的时候,用指针指向它,通过指针此时,内容是可以改变的

5)

通过3)和4)可知字符数组可以通过输入函数来为其赋值,而字符指针不可以!

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值