C 语言中指针初始化为字符串常量 不可通过该指针修改其内容

本文解析了C语言中字符串常量的存储位置问题。通过对比数组和指针两种方式定义字符串,详细阐述了它们在内存中的不同存储方式。并强调了非法修改静态存储区内容可能导致的运行时错误。
1 char b[] = "hello";
2 则“hello”存于栈中,因为定义的是一个数组。
3 
4 char *b = "hello";
5 则"hello"存于静态存储区中,因为定义了一个字符串常量,并把它的地址赋给了b。
6 如果此时在指针仍然指向静态存储区的情况下通过指针修改其指向的地方,则程序能通过编译,但运行时会报“segmention fault”

转载于:https://www.cnblogs.com/wintersweetwang/p/4425221.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值