看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《runtime (LLLLL)》之銘言: : http://apps.facebook.com/mentaltest-zmacgno/ : facebook上的C語言測驗 : 試試看自己的程度吧 : 有一些題目還不賴 : 沒有臉書的 看以下 : ==全部copy過來== : 1. void *i = 3; int j = 7; printf("%d\n",i+j); 請問結果為何者? : a 跑出一連串亂碼的數字 : b 無法編譯此程式 : c 10 : d 7 我想到一件事.... gcc 的 extension 有一個相關: http://gcc.gnu.org/onlinedocs/gcc-4.4.1/gcc/Pointer-Arith.html 這裡是把 void * 看成元素長度是 1 去做運算 不過印象中標準裡是不允許 void * 去做 pointer arithmetic 的.... -- **** 說: 不要期望一個精神力差不多已經見底的人阿Orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.84
VictorTom:換句話說答案應該是b, 這樣就比較合理一點了....:) 08/14 09:18
ledia:怎麼不印 sizoef(void *) 看看是多大 XD 08/14 10:19
VictorTom:void *是可以sizeof的, 大小看環境吧....@_@" 08/14 10:30
VictorTom:不過現在是說對void*做算術運算的結果吧?_? 08/14 10:31
Ebergies:sizeof( void*) 在 32bit address 裡一定是 4bytes 吧 08/14 11:33
Ebergies:問題在於好像沒有 sizeof( void)... 08/14 11:34
weiyucsie:有種相容於char *的感覺XD 08/14 16:04