标题:新手求助有关数组和指针的问题。。。
只看楼主
白首青春
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-12-7
结帖率:100%
已结贴  问题点数:5 回复次数:2 
新手求助有关数组和指针的问题。。。
程序如下:
#include<stdio.h>
int main()
  {char a[]="I am a students.",b[20],*p1,*p2;
   p1=a;p2=b;
   for(;*p1!='\0';p1++,p2++)
       *p2=*p1;
    *p2='\0';
   printf("string a is:%s\n",a);           //不是说不能用数组输出字符串吗?????它输出的不应该是数组首元素的地址???
   printf("string b is:%s\n",a);
   return 0;
}
另外求一份谭浩强第四版的《c语言设计》的课后答案,每次做完都不知道对错,纠结ing
   
搜索更多相关主题的帖子: 字符串 return c语言设计 元素 
2013-01-18 15:33
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
得分:3 
  printf("string a is:%s\n",a);           //不是说不能用数组输出字符串吗?????它输出的不应该是数组首元素的地址???
对,你用%p来输出的话它的确是数组首元素的地址,但是你用%s来输出的话它就会视为字符串输出,输出格式不同,同样的,遇到终止符'\0'结束输出,要记住它不是调用数组名来输出数组内的所有元素,而是依靠地址来输出字符,不然要终止符'\0'干嘛啊...

I have not failed completely
2013-01-18 15:41
羽VS翼
Rank: 2
等 级:论坛游民
帖 子:26
专家分:43
注 册:2013-1-17
得分:2 
%s就是字符串啊!其实指针放的就是a啊!a本身就是字符串的首地址。   所以输出printf("string a is:%s\n",a);     printf("string b is:%s\n",p1);是一样的。
如果你要输出地址建议你用printf("string a is:%p\n",a);记住是%p     



[ 本帖最后由 羽VS翼 于 2013-1-18 15:44 编辑 ]
2013-01-18 15:43



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




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

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