c语言提高篇(一)

  我接触c语言有一段时间了,之前把c语言的语法弄得滚瓜烂熟,但是还不敢说自己懂c语言,老感觉自己摸不透c语言,但是经过这一段时间的学习,我觉得c语言有了很大的进步,在此我会慢慢总结我对c语言深层次的理解。作为自己的学习笔记,同时也可以供大家来学习
  c语言是除了汇编语言外最底层的语言,所以比起c++,java等语言外,c语言更接近机器的底层硬件。在此基础上,我们再往层次去想,我们编写的程序是在内存中去运行的,所以要更加懂c语言,就要知道c语言中的程序是如何在计算机内存中分布的。这一次就说说c语言的变量。
1.变量的定义:我们在定义c语言变量的时候,我们要定义变量的类型和变量的名字,这两个是最基本的要求。有没有人想过为什么有这样的要求呢?首先,变量的类型代表着这个变量所占内存的大小,如果没有类型,那么如何区分int类型是占4个字节,char型是占1个字节呢?其次是变量的名字,变量的名字代表着这个变量在内存中的地址,其实可以理解为变量的名字就是一个指针,这个指针指向这个变量
2.变量的生命周期:生命周期指的是这个变量在程序中作用的时间。局部变量只能在函数中作用,当那个函数返回后,那个变量的内存就会被释放,变量就不会再存在。全局变量在整个程序的运行都能起作用。那么能不能让局部变量也能在整个程序运行时都能起作用呢?只要加个static关键字就可以
3.变量的作用域:作用域指的是变量的作用范围。全局变量的作用范围是全局变量下面的区域,而局部变量作用的范围是函数内部这个变量下面的区域。
4.变量的链接属性:链接属性指的是在本c文件中的变量能不能再另外一个c文件中调用。首先说明,只有全局变量才具有被别c文件调用的可能性(包括static修饰的局部变量),在别的文件调用该变量时,要加static修饰
5.变量的存储区间:在编译时,编译器会帮我们程序划分一定的区域,有代码段(程序放的地方),数据段(全局变量放的地方),堆栈区(局部变量存放的地方)

猜你喜欢

转载自blog.csdn.net/mujun0145/article/details/80556922
今日推荐