|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ C语言指针
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
623
人关注过本帖
标题:
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
快速回复:
C语言指针
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.020267 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved