搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ C语言指针
标题:
C语言指针
只看楼主
陆嘉文
来 自:江西
等 级:
新手上路
帖 子:96
专家分:6
注 册:2011-11-10
结帖率:
76.92%
楼主
问题点数:0 回复次数:9
C语言指针
#include<stdio.h>
int main(void)
{
char *ptr = "Linux";
*ptr = 'T';
printf("\n [%s] \n", ptr);
return 0;
} 请问错哪里了?
搜索更多相关主题的帖子:
Linux
C语言
return
include
void
2012-09-12 23:14
lz1091914999
来 自:四川
等 级:
贵宾
威 望:
37
帖 子:2011
专家分:5959
注 册:2010-11-1
第
2
楼
得分:0
char *ptr = "Linux"; 这句的正确形式应该为 const char *ptr = "Linux"; 被""括起来的是字面字符串,每个字符都是不能被修改的,所以正确的类型应该是const char*,但是以前很多代码都用了char*这样的类型,为了向下兼容保留了这样的代码,所以呢,以后最好把接收字面字符串的指针改为const char*。
*ptr = 'T'; 修改了第一个字符,刚才说了这个字符串里的每个字符都是不能被修改的,所以编译没问题,运行出现错误,是不是提示内存不能为"write"?
My life is brilliant
2012-09-12 23:59
hrc2010a
等 级:
论坛游民
帖 子:16
专家分:55
注 册:2012-9-12
第
3
楼
得分:0
楼上的高手呀!!!
2012-09-13 00:24
逆天蚂蚁
来 自:山西吕梁
等 级:
新手上路
帖 子:22
专家分:4
注 册:2012-9-10
第
4
楼
得分:0
回复 2楼 lz1091914999
厉害
2012-09-13 10:53
Andony
等 级:
论坛游民
帖 子:38
专家分:60
注 册:2012-9-12
第
5
楼
得分:0
指针的实质是指向一个特定的内存地址的起始位置,“Linux”是字符串常量,存储在静态数据区,其内容是不能被修改的,指针ptr只是指向Linux存储位置的起始地址,并不能通过指针来修改字符串常量。
你可以好好去看下有关 存储位置 方面的东西。
重复的事情用心做,你就是赢家
2012-09-13 13:26
陆嘉文
来 自:江西
等 级:
新手上路
帖 子:96
专家分:6
注 册:2011-11-10
第
6
楼
得分:0
回复 2楼 lz1091914999
const这个是干嘛用的啊?
我还问一下是不是所有的常量比如整形常量 123 字符串常量都是存储在静态存储区呢?
[
本帖最后由 陆嘉文 于 2012-9-14 19:43 编辑
]
2012-09-14 19:41
陆嘉文
来 自:江西
等 级:
新手上路
帖 子:96
专家分:6
注 册:2011-11-10
第
7
楼
得分:0
回复 2楼 lz1091914999
我加const 会报错啊!
Compiling...
hhh.cpp
F:\C文件\hhh.cpp(6) : error C2166: l-value specifies const object
执行 cl.exe 时出错.
hhh.obj - 1 error(s), 0 warning(s)
这是报错的文字
2012-09-14 19:46
lz1091914999
来 自:四川
等 级:
贵宾
威 望:
37
帖 子:2011
专家分:5959
注 册:2010-11-1
第
8
楼
得分:0
回复 6楼 陆嘉文
凡是你自己写的一些字面值都是常量,都与程序代码一起存储在可执行文件中,运行时和代码一起加载到内存。
My life is brilliant
2012-09-14 19:58
lz1091914999
来 自:四川
等 级:
贵宾
威 望:
37
帖 子:2011
专家分:5959
注 册:2010-11-1
第
9
楼
得分:0
回复 7楼 陆嘉文
l-value specifies const object
当然会错啦,你的那行代码不是修改了不应该修改的东西么?
My life is brilliant
2012-09-14 19:59
姻脂梦
等 级:
侠之大者
帖 子:264
专家分:424
注 册:2012-7-3
第
10
楼
得分:0
[ ]
2012-09-15 00:46
10
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-381289-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.073917 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved