我寫了一個測試程序,這些指令:ç指針引用
char *p;
然後
p="gibberish";
去然後再打印數p作爲如下
printf("%s\n", p);
,我得到了 「胡言亂語」由於p地址沒有初始化,我感到驚訝;運行代碼時我期待錯誤,但我沒有...請解釋任何問題?
此外,當使用帶指針的結構作爲其字段時,例如
struct dummy
{
int *m;
....
}
我怎樣才能取消引用一個虛擬變量dv
m
?我試過dv.m
,它確實工作,雖然我期待dv.(*m)
;請任何解釋?
這應該是兩個問題,其中每個問題都會成爲問題,因爲C上的任何教科書都會回答它們。 –
要訪問結構中的指針,可以使用'* dv.m'或'dv.m [0]'或類似的東西; 'dv.m'就是指針。在'.'或' - >'之後,你總是有一個成員名字(一個簡單的標識符,儘管如果編碼器足夠反常並且不被代碼審查員控制,它可以用括號括起來)。 –
「,我得到了」亂碼「,讓我感到吃驚,因爲p地址沒有初始化」 - 呵呵......你覺得'p =「亂碼」;'是嗎? – 2013-12-08 08:22:18