lvxuzhou


私信TA

用户名:lvxuzhou

访问量:95872

签 名:

lvxuzhou

等  级
排  名 47
经  验 11032
参赛次数 0
文章发表 56
年  龄 0
在职情况 学生
学  校 西安
专  业

  自我简介:

#include<stdio.h>
int main()
{
int a = 10;
printf("%d\n",0[&a]);
unsigned int b= &a;
printf("%d\n", 0[(int*)b]);
return 0;
}

运行结果:

QQ图片20190403221127.png

 

0.0分

0 人评分

  评论区

第一个printf 0+下标运算
第二个printf  强制类型转换然后再0+下标运算
2022-04-18 12:38:47
这怎么能编译通过呢?你莫不是搞笑吧,类型转换都摸不清,还来秀数组和指针
2019-04-11 09:47:40
他的程序有错的,指针不能隐式转换为无符号整型,肯定编译不通过!他是想说数组内部就是用指针实现的,因为一个变量就是有一个元素的数组,无论使用数组名还是指针访问元素都可以!至于a[0]和[0]a区别,也就是(a+0)和(0+a)的区别,不过楼主装逼失败,居然不知道类型转换的可行性!!
2019-04-11 09:46:21
/tmp/001797681/main.cpp:6:14: error: cannot initialize a variable of type 'unsigned int' with an rvalue of type 'int *'
unsigned int b= &a;
             ^  ~~
1 error generated.

exit status 1

直接运行结果是这样的
2019-04-10 11:26:41
所以为什么呀
2019-04-08 23:13:12
大佬解释一下
2019-04-08 11:16:46
[] 和(&)是相反的操作,前面的数字的话,应该是偏移。第二个的话不同类型不能这样赋值吧,改成引用成功崩溃了,崩溃点在(int*)这里,题主是不是漏了点什么..
2019-04-08 11:08:02
答主能解释一下吗
2019-04-07 19:53:23
  • «
  • 1
  • »