win10+dev-c++
#include
int main(void)
{
char arr1[]={'A','B','B'};
char arr2[6]={'E','E','C'};
//下面的地址怎么都不一样
printf("arr1:%s,%d\n",arr1,arr1);
printf("arr1:%s,%d\n",arr1,arr1);
printf("arr1:%s,%p,%d\n",arr1,arr1);
printf("arr2:%s,%p,%d\n",arr2,arr2);
return 0;
}
arr1的地址前后不一致
搞不定
搞清楚为啥
有啥问题啊?
后面两行你前面有三个格式化项,但后面只有两个arr1,所以第三个输出了一个随机数而已。你后面写三个arr1就一样了啊
针对你的问题,我有以下想法
根据我们是知道的%s是字符串的输出格式,所以第一个会是一个字符串。然而呢,又因为%d是输出整形用的,但是我们没设置整形,所以编译器不能确定输出什么,就会输出一个随机数。
printf("arr1:%s,%p,%d\n",arr1,arr1);
printf("arr2:%s,%p,%d\n",arr2,arr2);
这个是你的代码,printf 函数中需要输出三种格式 %s、%p、%d,结果变量只有两个