字符串常量与 字符指针,字符数组

Posted electronic

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串常量与 字符指针,字符数组相关的知识,希望对你有一定的参考价值。

1. 字符串的定义
(1) char buf[10] = "hello"; //定义了10个字节的数组,但只用了6个字节存放字符串
(2) char *str = "hello"; //此处hello是字符串常量,存储在长常量区,把首地址传给指针变量 sts
(3) char *s = "hello"; // 指针s 与 指针str的内容都是指向字符串常量“hello” 其值相等;
(4) char buff[] = "hello"; //定义了一个数组没有规定大小,但字符串常量用了6个字节存放字符串(包含\\0),数组大小为6个字节
第二、三种方式,只允许访问,不允许通过指针形式修改字符串中的内容,如:*(str+1) = E; 是不被允许的,字符串存在常量区;
通过buf和buff是可以修改字符串指向的内容,buf[1] = H;buff[1]=G;是可以的,且buf和buff是指向两个不同的地址

技术图片

技术图片

 

以上是关于字符串常量与 字符指针,字符数组的主要内容,如果未能解决你的问题,请参考以下文章

字符数组与字符指针

转:字符数组与字符指针

Part6 数组指针与字符串 6.13字符串

C语言进阶指针Ⅰ 字符串指针常量字符串指针数组指针数组使用常见。

C 语言字符串 一级指针 内存模型 ( 指定大小字符数组 | 未指定大小字符数组 | 指向常量字符串的指针 | 指向堆内存的指针 )

C 语言数组 ( 指针数组用法 | 菜单选择 )