我是菜鸟,不懂就问?
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"); }