#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct info
{
int id;
char name[20];
};
int main()
{
struct info p;
struct info *ptr;
ptr = &p;
(*ptr).id = 20;
strcpy((*ptr).name, "Delluh");
printf("\n %u %u %u\n\n",*ptr,ptr->id,ptr->name);
return 0;
}
最後一個printf語句給出'20 1819043140 26741'的輸出,其中20是正確值,其餘2個值是一些垃圾值。然而,在從ptr中刪除*時,我得到了一個地址值的正確輸出,然後是另一個地址值。任何人都可以告訴我爲什麼把*放在前面的ptr導致其他兩個值搞砸了?在嘗試打印C中的結構值時出現奇怪的O/P
是的,我知道這是正確的方法,但我只是想知道爲什麼把一個*導致其他2個值出錯。 – anto