#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

点赞(3)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 12 条评论

Kaiiiiiix 2年前 回复TA
第一个printf 0+下标运算
第二个printf  强制类型转换然后再0+下标运算
Kaiiiiiix 2年前 回复TA
@loading 都是四字节为什么不能转
lvxuzhou 5年前 回复TA
@loading 可以找微软问问,为啥程序运行通过了
loading 5年前 回复TA
这怎么能编译通过呢?你莫不是搞笑吧,类型转换都摸不清,还来秀数组和指针
loading 5年前 回复TA
他的程序有错的,指针不能隐式转换为无符号整型,肯定编译不通过!他是想说数组内部就是用指针实现的,因为一个变量就是有一个元素的数组,无论使用数组名还是指针访问元素都可以!至于a[0]和[0]a区别,也就是(a+0)和(0+a)的区别,不过楼主装逼失败,居然不知道类型转换的可行性!!
UDP广播协议叫吃饭 5年前 回复TA
@UDP广播协议叫吃饭 对哦,一直用C++忘记C这茬了
lvxuzhou 5年前 回复TA
@UDP广播协议叫吃饭 c和c++不一样
UDP广播协议叫吃饭 5年前 回复TA
/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

直接运行结果是这样的
zzzlll 5年前 回复TA
所以为什么呀
horbivores 5年前 回复TA
大佬解释一下