您的位置:首页 > 编程语言 > C语言/C++

通过一串代码,让你更深的理解C语言

2018-03-05 15:36 288 查看
相信大家好多正在学习C语言或者其他语言的小白或者初学者,今天我就给大家分享一下,如何去通过一串代码更加深层次的去理解C语言!

对这方面感兴趣,在学习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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息