C语言难点6:如何更好的看C语言源代码
一些c语言源代码中的一些难点
主要有四个,这几个博客写的很好
C语言系列:源代码中C语言的一些常用技巧,我只是整合起来了,如果侵权,请告知,立马删除!
博客1

博客2:
int* tran;
int b[10];
tran = b;
cout<<b<<endl;
cout<<tran<<endl;//两者结果一样
//看到上述代码,真是一模一样 如果你认为如此的话 估计你上C语言程序设计的课上睡着了 接着往下看 ~~~~
cout<<sizeof(b)<<endl;//结果为40 (注:32bit 机,可能不同位数的机器结果会不一样)
cout<<sizeof(tran)<<endl;//结果为4
//可能还是看不出有什么端倪 接着往下看~~~~
tran++;//ok
b++;//error
//这下明白了吧,数组名其实是一个指针标量,而指针是一个变量(指针)
下面引用:详细介绍C与C++数组名与指针区别(不知是哪位大神写的,很不错~,可惜找不到link了)
既然数组名不是指针,而为什么到处都把数组名当指针用?于是乎,许多程序员得出这样的结论:数组名(主)是(系)不是指针的指针(表)。整个一魔鬼~~
揭密数组名
现在到揭露数组名本质的时候了,先给出三个结论:
(1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;
(2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量;
现在到揭露数组名本质的时候了,先给出三个结论:
(1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;
(2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量;
(3)指向数组的指针则是另外一种变量类型(在WIN32平台下,长度为4),仅仅意味着数组的存放地址!
博客3:
这一节上点硬货,主要是开源代码常用的编程形式与技巧:
是不是有时候看见一些开源代码中头文件中声明了一些函数或结构超复杂?下面这几点将解开这些声明与定义(往往与指针有莫大的关系,使得我们看的稀里糊涂)神秘的面纱!
博客4:
这一节上点硬货,主要是开源代码常用的编程形式与技巧:
是不是有时候看见一些开源代码中头文件中声明了一些函数或结构超复杂?下面这几点将解开这些声明与定义(往往与指针有莫大的关系,使得我们看的稀里糊涂)神秘的面纱!
好了,C语言的部分就从这一部分开始结束了!下一阶段换点东西写博客,暂时还没定,不过会坚持下去的!