这些 C 语言的题,各位不用电脑纯手写的话,能做到什么程度呢?

查看 394|回复 32
LHN   
@AFOX #5 第一题输出应该是 2,1 吧
AFOX
OP
  
@LHN 第一题是语法错误,很操蛋的题
nagisaushio   
@LHN 其实是 2,5 。&a+1 会跳过 5 个元素,a+1 才是 1 个
feather12315   
@AFOX #5
`*(p-1)`太操蛋了。同事提醒恍悟:
`&a == &a[0] == a`,`a`与`&a[0]`含义一样,但是`&a`与`a`含义不同,`&a`代表的是数组`a[5]`的地址,+1 就是`&a[6]`了。
就是坑人的
AFOX
OP
  
@AFOX 不对,我好像少了个括号,不过我写的是 2 ,1 ,反正是错了 qwq
AFOX
OP
  
@feather12315 hhh
iOCZS   
第二题好像可以用快速幂来做
AFOX
OP
  
``` C
// 关于这道题,有两种情况,比如如果是下面这样,那输出就是 2 ,5
int main() {
int a[5] = {1, 2, 3, 4, 5};
int *p = &a + 1;
printf("%d, %d", *(a+1), *(p - 1));
return 0;
}
// 如果是下面这样,那么编译报错
int main() {
int a[5] = {1, 2, 3, 4, 5};
int *p = &(a + 1);
printf("%d, %d", *(a+1), *(p - 1));
return 0;
}
有点记不清当时题目有没有这个括号了,不过我都错了 qwq
```
tool2dx   
&a+1 会跳过 5 个元素, 我还第一次遇到,涨见识了。
AFOX
OP
  
@iOCZS 因为要一个表达式,所以应该是 (number & number - 1) == 0
您需要登录后才可以回帖 登录 | 立即注册

返回顶部