我是菜鸟,不懂就问?
char a[10]={123456789};char a[10]={"123456789"};
请问这两个语句有什么不同?
[ 本帖最后由 Teem 于 2012-12-29 23:34 编辑 ]
程序代码:#include<stdio.h>
int main()
{
//>f:\c_source\t7\t7\t7.cpp(5): warning C4305: “初始化”: 从“int”到“char”截断
//>f:\c_source\t7\t7\t7.cpp(5): warning C4309: “初始化”: 截断常量值
char a[]={123456};
char b[]={"123456"};
for(int i=0;i<(sizeof a)/sizeof(char);i++)
{
printf("%4d",a[i]); //11110001001000000 这里打印输出是64 也就是只保留后8位
}
printf("\n");
char c[]={654321};
for(int k=0;k<(sizeof c)/sizeof(char);k++)
{
printf("%4d",c[k]); //10011111101111110001 这里打印输出是-15 也就是只保留后8位
}
printf("\n");
for(int j=0;j<(sizeof b)/sizeof(char);j++)
{
printf("%4c",b[j]);
}
printf("\n");
}
