首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
C/C++
C++ 语言
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
请教一个让我很困扰的问题
[已结贴,结贴人:happy446]
加为好友
发送私信
在线聊天
happy446
++猪
等级:
可用分等级:
乞丐
总技术专家分:
8
总技术专家分排名:
233461
揭帖率:
100.00%
发表于:
2008-05-10 23:10:57
楼主
定义一个字符窜有两种方法 char a【256】=“dfdf”;或者char *a="dfdf";
然后下面一个函数 void f(char *)
经常出现 用第一种定义不能通过,改成第二种第一通过了
用第二种定义通过了,第一种定义通过了
我的理解是第一个定义的指针a是常指针,不能出现a++之类的语句
但是第二种定义什么情况下会通不过编译,必须用第一种定义呢??
问题点数:
20
回复次数:
12
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
HelloDan
婷,天天快乐!
等级:
可用分等级:
富农
总技术专家分:
4112
总技术专家分排名:
4999
发表于:
2008-05-10 23:14:27
1
楼 得分:
0
char *a="dfdf";
上面的相当于 const char* a="dfdf";
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jwpl190
车五
等级:
可用分等级:
中农
总技术专家分:
891
总技术专家分排名:
21048
发表于:
2008-05-10 23:25:22
2
楼 得分:
10
char *a="dfdf"; 是一个定义一个指针,它指向字符串常量.
而字符串常量不能修改.
char b[256]=“dfdf”可以修改里面的内容.
a[1] = 'a' //系统错误
b[1] = 'a' //正确
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zhoujie99
潇雨歇
等级:
可用分等级:
中农
总技术专家分:
450
总技术专家分排名:
34829
发表于:
2008-05-11 00:33:32
3
楼 得分:
10
char a【256】=“dfdf”; //a是字符数组,数组里元素都是char类型的变量,
即d、f、d、f是4个char类型的变量,分别存放在a[0]-a[3]中,可以随意改变
但a表示数组首地址,一旦定义,就固定不变,字符数组首地址都是常量
所以a++出错,++不能用于常量
char *a="dfdf"; // a是指针,指向char类型数据的地址,就是“dfdf”的首地址,
但是此处“dfdf”是一个字符串常量,不能改这4个字母,因为他们都在常量区
a指向该字符串常量的首地址,所以不能通过a去改变这4个字母,只能读出,不能写入
*a='h' ;//error 写入则错
*(a+1)='h'; 等价于 a[1]='h';//error
char ch=*a;//ok 可以读取数据
但a是个指针变量,可以随意加减,甚至int i; a=&i都可以,因为a是个指针变量,可变的
a++也合法,只是指向的内容是个常量,即d、f、d、f不可变罢了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Treazy
戒指
等级:
可用分等级:
中农
总技术专家分:
13866
总技术专家分排名:
1128
发表于:
2008-05-11 01:31:30
4
楼 得分:
0
楼主看下指针和数组的区别!
另外只读数据区与可读写数据区的区别
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
xiaolajiyige
小垃圾一个
等级:
可用分等级:
短工
总技术专家分:
0
总技术专家分排名:
311804
发表于:
2008-05-11 15:52:53
5
楼 得分:
0
char a[256]={"asdfafdsa"};这样就行了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
well4u
等级:
可用分等级:
贫农
总技术专家分:
161
总技术专家分排名:
67737
发表于:
2008-05-11 16:53:57
6
楼 得分:
0
3楼仁兄回复很透彻,长见识了。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
f22fbi
FPrince
等级:
可用分等级:
富农
总技术专家分:
215
总技术专家分排名:
57027
发表于:
2008-05-11 17:18:16
7
楼 得分:
0
学习了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
nuaacj8888
如影随馨
等级:
可用分等级:
贫农
总技术专家分:
107
总技术专家分排名:
85312
发表于:
2008-05-11 17:29:03
8
楼 得分:
0
学习了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chenzhp
云端漫步
等级:
可用分等级:
中农
总技术专家分:
2189
总技术专家分排名:
10245
发表于:
2008-05-11 17:33:49
9
楼 得分:
0
其实,有时候仔细看一下书就知道了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
guocai_yao
等级:
可用分等级:
中农
总技术专家分:
161
总技术专家分排名:
68775
发表于:
2008-05-11 18:22:44
10
楼 得分:
0
引用 9 楼 chenzhp 的回复:
其实,有时候仔细看一下书就知道了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
limingjiu
尼可罗宾
等级:
可用分等级:
中农
总技术专家分:
236
总技术专家分排名:
53585
发表于:
2008-05-11 21:20:49
11
楼 得分:
0
引用 7 楼 f22fbi 的回复:
学习了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
andywiliang
魂牵梦萦
等级:
可用分等级:
中农
总技术专家分:
134
总技术专家分排名:
75269
发表于:
2008-05-11 21:27:50
12
楼 得分:
0
帮顶...................
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友