对两个奇葩的C语言程序的思考(2)

linuxidc@ubuntu:Practice$ cat main2.c
#include<stdio.h>
void main() {
 int a[]={1,2,3,4,5,6};
 printf("a[5]=%-5d 5[a]=%-5d\n",a[5],5[a]);
}
linuxidc@ubuntu:Practice$ gcc main2.c  -o main2
linuxidc@ubuntu:Practice$ ./main2
a[5]=6    5[a]=6   
linuxidc@ubuntu:Practice$

我记得这个好像曾经是MIT的C语言考试题目,考察对C语言数组实质的理解。即a[5]将转换为*(a+5),所以和5[a]的*(5+a)的值相同。

将C语言梳理一下,分布在以下10个章节中:

Linux-C成长之路(一):Linux下C编程概要

Linux-C成长之路(二):基本数据类型

Linux-C成长之路(三):基本IO函数操作

Linux-C成长之路(四):运算符

Linux-C成长之路(五):控制流

Linux-C成长之路(六):函数要义

Linux-C成长之路(七):数组与指针

Linux-C成长之路(八):存储类,动态内存

Linux-C成长之路(九):复合数据类型

Linux-C成长之路(十):其他高级议题

C++ Primer Plus 第6版 中文版 清晰有书签PDF+源代码

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/fcae58a3c61a95f09bd47a7bffb58dbf.html