| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5045 人关注过本帖
标题:求教a和a[0]的具体区别
只看楼主 加入收藏
冬天之火
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-3-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:19 
求教a和a[0]的具体区别
#include<stdio.h>

int main(){
    char a[50]="hello world.";
    char *p=a;
    printf("%s\n",p);
    return 0;
}

为什么用printf("%s\n",*p);不行啊,a和a[0]地址不是相同吗?希望能够答具体透彻一点。多谢!
搜索更多相关主题的帖子: return hello world 
2016-03-01 15:03
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
程序代码:
#include<stdio.h>

int main()
{
    char a[50]="hello world.";
    char *p=a;
    printf("%s\n",p);  //p指向字符串
    printf("%c\n",*p);  //*p是字符
    return 0;
}

DO IT YOURSELF !
2016-03-01 15:15
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:1 
a是字符数组名,同时本身也是指向字符串的开始地址,请注意到字符串以'\0'为结束标志。a[0]=='h',是一个字符并不是地址,&a[0]才是地址,它和a指向同一个地址(p=a=&a[0],a[0]=*p,a[1]=*(++p))。
程序代码:
#include <stdio.h>

int main()
{
    char a[50]="hello world.";
    char *p=a;
    //以下三句等同
    printf("%s\n",&a[0]);
    printf("%s\n",a);
    printf("%s\n",p);
    //以下两句等同
    printf("%c\n",a[0]);
    printf("%c\n",*p);

    return 0;
}

   唯实惟新 至诚致志
2016-03-01 15:27
冬天之火
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-3-1
收藏
得分:0 
回复 3楼 qq1023569223
首先非常感谢,但最重要的是a和a[0]地址相同啊,你还是没能解释透彻啊,如果光是背的话,很容易的。。分分钟我们都可以把它们背出来。
2016-03-01 17:27
拉链
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:534
注 册:2016-1-22
收藏
得分:0 
“%c\n”,*p
a是地址值(所谓指针),a【0】是char型值,类型不同,需要不同的显示格式。

[此贴子已经被作者于2016-3-1 18:32编辑过]

2016-03-01 18:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
地址相同跟内容相同有什么关系?出租屋的地址不变,里面住的人可是会变的。同一个人,也可以住在不同的地方。一间屋有多个间隔房,要操作第一间房和操作全部的房,动作一样吗?

*p是提取一个字符,是第一间房的住客,不是房号,%s找不到下一间在那里,但它会当客人是地址(就是数量一样但是不同意义,如1吨铁和1个人不是一回事),于是跑去太空中找人,你就由此得到很多星星月亮。

p是地址,*p是地址中的住客(未必总是a[0]),p是会动的,但a是不会动的,p与a不是一回事,p是一张名片,但a是那整个屋子。

[此贴子已经被作者于2016-3-1 21:05编辑过]


授人以渔,不授人以鱼。
2016-03-01 20:47
冬天之火
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-3-1
收藏
得分:0 
继续等待高手回帖中。。。无语问苍天。
2016-03-01 22:17
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用冬天之火在2016-3-1 22:17:22的发言:

继续等待高手回帖中。。。无语问苍天。
6楼的是大白话
2016-03-02 07:13
拉链
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:534
注 册:2016-1-22
收藏
得分:1 
估计楼主在另一个宇宙思考...
2016-03-02 11:48
冬天之火
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-3-1
收藏
得分:0 
可能是我要求太高了,曾经有个老师说我太执著了,我试图着改变,但是,我真的想找到一个我认为满意的答案。
2016-03-02 23:02
快速回复:求教a和a[0]的具体区别
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047068 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved