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

本文详细解析了字符串在不同情况下的存储方式及访问限制。包括数组定义与常量区存储的区别,以及通过指针和数组名访问字符串时的权限差异。强调了常量区字符串不可修改的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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是指向两个不同的地址

 

转载于:https://www.cnblogs.com/electronic/p/10848331.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值