当前位置: 代码迷 >> C语言 >> 数组的问题》char s[2];printf("%d %d",s,s)输出什么结果?
  详细解决方案

数组的问题》char s[2];printf("%d %d",s,s)输出什么结果?

热度:825   发布时间:2007-04-05 11:48:57.0
数组的问题》char s[2];printf("%d %d",s,s)输出什么结果?
我想知道的是,下面的输出语句输出了什么?
#include<stdio.h>
main()
{
char s[2];
printf("%d",s);
}
为什么下列
#include<stdio.h>
main()
{
char s[2];
printf("%d %d",s,s);
}
输出是不一样的呢?

我知道上面方式是不正确的,只是想知道输出的结果是怎么形成的?
搜索更多相关的解决方案: char  printf  结果  输出  

----------------解决方案--------------------------------------------------------
#include<stdio.h>
main()
{
char s[2];//字符数组没有赋值,其值是未知的
printf("%d",s);//这里,参数s.指的是s[0]
}
为什么下列
#include<stdio.h>
main()
{
char s[2];//字符数组没有赋值,其值是未知的

printf("%d %d",s,s);这里的两个s都指的是s[0]
}


lz对数组还没有理解
----------------解决方案--------------------------------------------------------
s指的是首地址,输出的是地址,好像没有问题
----------------解决方案--------------------------------------------------------

编译地址不一样...


----------------解决方案--------------------------------------------------------

谢谢


----------------解决方案--------------------------------------------------------
终于弄明白了.
#include<stdio.h>
main()
{
char s[2];
printf("%d %d",s,s);
}
s是首元素的地址用printf("%p %p",s,s);可以打印
而printf("%d %d",s,s);打印的是将十六进制的地址转换成十进制打印
之所以2次不同是因为地址被:号分成2部分,1次打印第一部分,2次打印第二部分
但不知道为什么这样分?
----------------解决方案--------------------------------------------------------
以下是引用PcrazyC在2007-4-5 11:56:14的发言:
s指的是首地址,输出的是地址,好像没有问题


----------------解决方案--------------------------------------------------------

内容被作者删除

[此贴子已经被作者于2007-4-5 19:45:20编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案