| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 611 人关注过本帖
标题:printf中有&怎相样用
只看楼主 加入收藏
wshyj18
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2007-5-14
收藏
 问题点数:0 回复次数:7 
printf中有&怎相样用
#include<stdio.h>
#include<string.h>
void main()
{
char a[10]="HOLLAND";
char b[]="CHINA";
strcpy(a,b);
printf("%s",a[10]);
}听说倒数第二行的a[10]前可以用&,能告诉为什么吗
问题补充:将倒数第二的a[10]改为&a[10]是china
&a[9]是空
8是空
7是空
6是d
5是空
4是a
3是na
2中ina

1是hina
0是china
搜索更多相关主题的帖子: include china 倒数 
2007-06-01 12:34
小子也大叔
Rank: 2
等 级:新手上路
威 望:4
帖 子:143
专家分:0
注 册:2007-4-23
收藏
得分:0 
因为用printf输出字符串的时候 就是考试它地址啊 你应该知道这个的意思吧:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char a[10]="HOLLAND";
char b[]="CHINA";
strcpy(a,b);
printf("%s",a);

system("pause");
return 0;
}

那你再看看  #include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char a[10]="HOLLAND";
char b[]="CHINA";
strcpy(a,b);
printf("%s",&a[0]);

system("pause");
return 0;
}

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char a[10]="HOLLAND";
char b[]="CHINA";
strcpy(a,b);
printf("%s",&a[1]);

system("pause");
return 0;
}

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char a[10]="HOLLAND";
char b[]="CHINA";
strcpy(a,b);
printf("%s",&a[4]);

system("pause");
return 0;
}

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char a[10]="HOLLAND";
char b[]="CHINA";
strcpy(a,b);
printf("%s",&a[5]);

system("pause");
return 0;
}


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char a[10]="HOLLAND";
char b[]="CHINA";
strcpy(a,b);
printf("%s",&a[10]);

system("pause");
return 0;
}

希望一心想学c的加我的群吧~~ 40834003
2007-06-01 13:22
老糊涂
Rank: 1
等 级:新手上路
威 望:1
帖 子:117
专家分:0
注 册:2007-5-19
收藏
得分:0 
a[10]={'H','O','L','L','A','N','D'}
copy后
a[10]={'C','H','I','N','A','\n','D'}

2007-06-01 13:50
小子也大叔
Rank: 2
等 级:新手上路
威 望:4
帖 子:143
专家分:0
注 册:2007-4-23
收藏
得分:0 
不对
以下是引用老糊涂在2007-6-1 13:50:58的发言:
a[10]={'H','O','L','L','A','N','D'}
copy后
a[10]={'C','H','I','N','A','\n','D'}

copy 后不应是:a[10]={'C','H','I','N','A','\n','D'};

我想应该是  a[10]={'C','H','I','N','A','\0','D'};因为strcpy()这个函数是把全部字符串  连同字符串后面的'\0'一起copy 进去的 

你们看看我下面两个程序有什么不同嘛:
1.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char a[10]="HOLLAND";
char b[]="CHINA";
strcpy(a,b);
printf("%s",&a[6]);//这个地方是 %s

system("pause");
return 0;
}

2.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char a[10]="HOLLAND";
char b[]="CHINA";
strcpy(a,b);
printf("%c",&a[6]);//这个地方是%c

system("pause");
return 0;
}

[此贴子已经被作者于2007-6-1 15:28:40编辑过]


希望一心想学c的加我的群吧~~ 40834003
2007-06-01 15:27
老糊涂
Rank: 1
等 级:新手上路
威 望:1
帖 子:117
专家分:0
注 册:2007-5-19
收藏
得分:0 
"\n"我写错了,应该是"\0"呵呵

2007-06-01 22:09
chyhome
Rank: 1
等 级:新手上路
威 望:1
帖 子:102
专家分:0
注 册:2007-5-13
收藏
得分:0 
printf("%s",&amp;a[2]);意思:从字符串数组a的第2个字符显示输出,其他与此类推。

2007-06-02 01:23
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
收藏
得分:0 
..........那个是字符串的输出好吗?

偶是菜鸟鸟偶惧WHO?!!!!
2007-06-02 09:19
zy1437zy
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-4-25
收藏
得分:0 
char a[10]="HOLLAND";
char b[]="CHINA";
分配的时候是连续的
所以&a[10]是b[]的首地址!
请多指教!~
2007-06-02 13:08
快速回复:printf中有&怎相样用
数据加载中...
 
   



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

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