标题:求教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: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册: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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-462051-1-1.html




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

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