我得到了一個令人驚訝的觀察,下面的代碼越來越分段錯誤常量值賦值給整型指針在C工作對於這種情況
#include<stdio.h>
void main() {
int *i;
*i = 100;
printf("%u\n",i);
printf("%d\n",*i);
}
但不是下面的一個。
#include<stdio.h>
void main() {
char* str;
int *i;
*i=100;
str = "Hello";
printf("%u\n",i);
printf("%s %d\n",str,*i);
}
有人可以解釋這種行爲嗎?我正在使用gcc。
UB͏͏͏͏͏͏͏͏͏͏͏͏͏ – Bathsheba
這是未定義的行爲,有沒有推理它 – stackptr
是嗎?即使我這樣想,我也跑了好幾次,但每次都得到了正確的答案。那時我在這裏舉起它?真的是這樣嗎? – user3345621