读书人

这个有关问题不简单

发布时间: 2012-03-09 16:54:57 作者: rapoo

这个问题不简单!
#include <stdio.h>
int main()
{
int str[4]={'1','2','3','4'};
printf("%d",str);
}
输出:168000
这个问题不简单啊!
#include <stdio.h>
int main()
{
char str[4]={'L''O''V''E'};
printf("%s",str);
}
输出:LOVE?!
这个问题不简单啊!
呵呵,就是请教一下前辈们,这些问题都是怎么一回事啊?
小弟,菜鸟!

[解决办法]
int str[4]={'1','2','3','4'};
printf("%d",str);

这里输出的是str的地址;

char str[4]={'L''O''V''E'};
printf("%s",str);

这里输出的是字符串,直到遇到'\0'才认为该字符串结束。
[解决办法]
#include <stdio.h>
int main()
{
char str[4]={'L''O''V''E'};
printf("%s",str);
}
你这儿输出的是字符串,遇到'\0'截止,但是你定义的数组没有'\0',那后边就会随机输出东西
[解决办法]

探讨
#include <stdio.h>
int main()
{
int i=0;
int str[4]={'1','2','3','4'};
for(i=0;i<4;i++)
{
printf("%d\n",str[i]);
}
}
那这个程序为什么输出49 50 51 52啊?

读书人网 >C语言

热点推荐