c语言字符串地址问题

今天写c的时候我先定义了一个结构structstu{intdes;charsex,dir;}a[10];本来写错了的一个语句判断语句if(&a[5].dir=="W")本... 今天写c的时候
我先定义了一个结构 struct stu
{
int des;
char sex,dir;
}a[10];
本来写错了的一个语句
判断语句if(&a[5].dir=="W")
本来我想判断a[5]的dir是否等于W这个字符而不是字符串“W”
后来写正确了应该是 a[5].dir=='W'而不是上面那个
但是先前编译的时候语法通过
也就是说我用了一个指针和“W”进行了比较 也就是说“W”也应该是个指针
我想问
单独就 某个字符串常量来说
直接使用它是否就代表它的地址
类比于 直接使用数组名相当于使用数组的首地址
展开
 我来答
匿名用户
2013-12-20
展开全部
应该是不可能的。想想就知道了
为什么要用指针(或者说地址)呢,是因为我们有可能要改变该单元里面的值
既然你叫“W”是常量,那你还想改变它里面的值吗?如果是,那它就叫变量了

至于你说“ ‘W’也应该是个指针”,应该也不然。
考虑下
char string[] = "stirng";
if (string == "not string") ....//其实字符串可以这样比较吗?我也忘了
以上是用stirng数组的首地址与“not stirng”, 我忘了C是不是可以这样来比较串。你说
通过编译,那我就假设是可以的。再想回(&a[5].dir=="W")情况,这是用(a[5].dir)的
地址与“W”比较,C会将(a[5].dir)所在单元后的内容与“W”比较。原理和(string == "not string")一样

呵呵,还有一点,我猜你可能想到了,就是比较char常量不是"W", 而是'W'.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-12-20
展开全部
直接使用它就代表它的地址,回想一下我们所用到的那么字符串的用法,确实是如此。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-12-20
展开全部
跟你说的一样,char szStr[1024];字符串名字szStr就是首地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式