C语言学习日志:2021-08-05
一.本节课知识点
数据类型,变量/常量,内存、地址,变量的作用域和生命周期
二.对于本节课的总结
本节课的知识点可以围绕着变量声明和变量定义总结。
//源1.cpp
#include <stdio.h>
int main(){
int a=0;//定义变量
printf("%d",a);
return 0;
}
源1.cpp中的定义变量语句
int a = 0;(数据类型 变量名 = 值;)的作用为:
使编译器在内存中分配4 byte长(一个int长)的内存,命名为a,用于存储0这一内容,其首地址为&a。
可以看出在变量定义语句中各个概念的作用:
i)数据类型决定了分配内存的大小(char 1Byte< short 2 Byte<= int 4 Byte<= long 4 Byte < long long 8 Byte; float 4 Byte< double 8 Byte)
ii)变量名:这片内存的名字。在程序中用于替代这片内存存储的值。
iii)值:这片内存存储的数据。
这片内存的首地址为:&a(取地址符+变量名)。由于知道了该变量对应的内存地址的首地址和内存大小,所以这片内存就被唯一确定了。
//源2.cpp
int b=10;
//源3.cpp
#include <stdio.h>
int main(){
extern int b;//声明全局变量
printf("%d",b);
return 0;
}
全局变量和局部变量涉及变量作用域概念。从变量对应的内存的角度讲,不同的代码块对同一内存的访问权限可能不同。
局部变量:定义在代码块({})内部,仅限本代码块和本代码块的子代码块访问。
全局变量:定义在代码块外部,(在适当声明的情况下)允许整个项目的代码访问。
变量生命周期的概念和作用域相关。变量的生命周期从进入其作用域开始,到离开其作用域结束。
C语言中的所有变量必需先声明后使用。定义语句是特殊的声明语句,其不但声明了变量,而且为其分配了内存空间。但一般的声明语句不会为变量分配内存空间。比如源3.cpp中变量声明语句extern int b;,其声明了全局变量b的使用,但是b的定义却在源2.cpp中。
变量定义语句和变量声明语句的另一区别是:一个变量只能被定义一次,但是却可以被声明多次。
三.其他的一些零散的知识点
1.使用VS这个C语言的IDE能够建立一个良好的编程习惯:多文件编程(项目编程)。多文件编程区别于以前我源文件编程的特点是多文件。之前使用Dev C和C-Free编程时,都是写一个孤立的源文件(全部程序都在里面)。这显然降低了程序的可读性和后期的可维护性。
2.main函数是程序唯一的入口