通过一串代码,让你更深的理解C语言
2018-03-05 15:36
288 查看
相信大家好多正在学习C语言或者其他语言的小白或者初学者,今天我就给大家分享一下,如何去通过一串代码更加深层次的去理解C语言!
对这方面感兴趣,在学习C/CC++或者想学习C/C++可以加群:623357784我们来看一段代码:#include <stdio.h>voidf(void)
但是你可能不知道b的输出会是什么?答案是1,2,3。为什么和c不一样呢?因为,如果要初始化,每次调用函数里,编译器都要初始化函数栈空间,这太费性能了。但是c的编译器会初始化静态变量为0,因为这只是在启动程序时的动作。
全局变量同样会被初始化。
说到全局变量,你知道 静态全局变量和一般全局变量的差别吗?是的,对于static 的全局变量,其对链接器不可以见,也就是说,这个变量只能在当前文件中使用。对这方面感兴趣,在学习C/CC++或者想学习C/C++可以加群:623357784
对这方面感兴趣,在学习C/CC++或者想学习C/C++可以加群:623357784我们来看一段代码:#include <stdio.h>voidf(void)
{
staticinta = 3;
staticintb;
intc;
++a; ++b; ++c;
printf("a=%d\n", a);
printf("b=%d\n", b);
printf("c=%d\n", c);
}
intmain(void)
{
f();
f();
f();
}我相信你对a的输出相当有把握,就分别是4,5,6,因为那个静态变量。这个程序会输出什么?对于c呢,你应该也比较肯定,那是一堆乱数。
但是你可能不知道b的输出会是什么?答案是1,2,3。为什么和c不一样呢?因为,如果要初始化,每次调用函数里,编译器都要初始化函数栈空间,这太费性能了。但是c的编译器会初始化静态变量为0,因为这只是在启动程序时的动作。
全局变量同样会被初始化。
说到全局变量,你知道 静态全局变量和一般全局变量的差别吗?是的,对于static 的全局变量,其对链接器不可以见,也就是说,这个变量只能在当前文件中使用。对这方面感兴趣,在学习C/CC++或者想学习C/C++可以加群:623357784
相关文章推荐
- c语言,通过代码对指针的理解
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过实例代码理解WPF的Dispatcher
- cocos2d-x系列笔记(9.1)---浅谈cocos2d-x使用函数指针实现委托(上)---通过c#代码理解委托
- 通过汇编一个简单的C程序,分析汇编代码理解计算机工作原理
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过分析汇编代码理解计算机如何工作
- 通过patch更好理解x264代码的小技巧
- 通过代码理解java泛型
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的--20135334赵阳林
- 『cs231n』作业2选讲_通过代码理解优化器
- 通过python代码理解rabbitmq消息收发原理
- 【py-faster-rcnn】【RPN】通过代码理解faster-RCNN中的RPN
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- javascript笔记:通过对作用域链和执行环境的深入理解所得出的提高javascript代码性能的建议
- 通过代码实例来理解反转控制IOC
- 云课堂 Linux内核分析 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过socket实现http通讯代码理解
- 『cs231n』作业3问题3选讲_通过代码理解图像梯度
- 通过swap代码分析C语言指针在汇编级别的实现