作者LPH66 ((short)(-15074))
看板C_and_CPP
标题Re: [闲聊] facebook上的C语言测验
时间Fri Aug 14 04:53:55 2009
※ 引述《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
1F:推 VictorTom:换句话说答案应该是b, 这样就比较合理一点了....:) 08/14 09:18
2F:推 ledia:怎麽不印 sizoef(void *) 看看是多大 XD 08/14 10:19
3F:推 VictorTom:void *是可以sizeof的, 大小看环境吧....@_@" 08/14 10:30
4F:→ VictorTom:不过现在是说对void*做算术运算的结果吧?_? 08/14 10:31
5F:推 Ebergies:sizeof( void*) 在 32bit address 里一定是 4bytes 吧 08/14 11:33
6F:→ Ebergies:问题在於好像没有 sizeof( void)... 08/14 11:34
7F:推 weiyucsie:有种相容於char *的感觉XD 08/14 16:04