首页 > 编程语言 > 详细

字符数组和字符指针用法的区别

时间:2020-02-23 12:16:34      阅读:57      评论:0      收藏:0      [点我收藏+]

字符指针 char *p,只可接收已知的字符串字面量

字符数组 char a[100],可接收已知或未知的字符串。

原理:字符指针只能存储一个字符类型的地址,而字符串字面量表达式的返回值是:首元素首地址,所以字符指针可以获得该首地址,并且可以通过指针读取该字符串,但不能修改,因为字符串字面量都保存在只读内存区域内,不可修改。

char *p="hello";
putchar(p);  //返回‘h‘
puts(p); //返回整个字符串“hello”
putchar(p[2]);  //返回’l‘
p[2]=w;  //错误,不可修改
char *p1;
scanf("%s",p1); //错误p1没有指定可以空间

char型数组,是分配了相应空间的,所以可以读取,写入字符串。

char a[10],b[5][10];
scanf(" %s",a);
for(int i=0;i<5;i++){
    scanf(" %s",b[i]);   //b[i]是第i行的首元素首地址
}
char c[10]="hello";

以上写法对于字符数组都是合法的。

 

字符数组和字符指针用法的区别

原文:https://www.cnblogs.com/litifeng/p/12348461.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!