#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; }
运行结果:
0.0分
0 人评分
这怎么能编译通过呢?你莫不是搞笑吧,类型转换都摸不清,还来秀数组和指针
lvxuzhou 2019-04-11 23:48:41 |
可以找微软问问,为啥程序运行通过了
他的程序有错的,指针不能隐式转换为无符号整型,肯定编译不通过!他是想说数组内部就是用指针实现的,因为一个变量就是有一个元素的数组,无论使用数组名还是指针访问元素都可以!至于a[0]和[0]a区别,也就是(a+0)和(0+a)的区别,不过楼主装逼失败,居然不知道类型转换的可行性!!
Kaiiiiiix 2022-04-18 12:37:02 |
都是四字节为什么不能转
/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 直接运行结果是这样的
lvxuzhou 2019-04-10 19:47:14 |
c和c++不一样
UDP广播协议叫吃饭 2019-04-10 23:43:43 |
对哦,一直用C++忘记C这茬了
[] 和(&)是相反的操作,前面的数字的话,应该是偏移。第二个的话不同类型不能这样赋值吧,改成引用成功崩溃了,崩溃点在(int*)这里,题主是不是漏了点什么..