我在我的一个程序中出现了一些意想不到的行为。经过进一步分析,我在下面缩短的代码中发现了一些奇怪的结果。C变量显示不同的值
#include <stdio.h>
int main() {
int k = 0;
int rstr[200];
printf("value of k= %d\n",k);
printf("adress of k = %x\n",&k);
printf("adress of rstr[0] = %x\n",&rstr[0]);
printf("adress of rstr[199] = %x\n",&rstr[199]);
rstr[200] = " ";
printf("value of k= %d\n",k);
printf("adress of k = %x\n",&k);
printf("adress of rstr[200] = %x\n",&rstr[200]);
return 0;
}
RSTR [200]是出的大小,以便它将包含垃圾值,但是,它是如何传递到变量k。请回答。 Output
未定义。行为。 – StoryTeller
你的问题会更好,输出为文字,而不是图像。 –
使用'%p'打印指针值:'printf(“k =%p \ n”的地址,(void *)&k);'这是你唯一需要将ponter值明确地转换为void * '。 –