字符数组和字符指针用法的区别
Posted litifeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符数组和字符指针用法的区别相关的知识,希望对你有一定的参考价值。
字符指针 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";
以上写法对于字符数组都是合法的。
以上是关于字符数组和字符指针用法的区别的主要内容,如果未能解决你的问题,请参考以下文章