一、计算机中的单位
bit ——比特位——计算机中的最小单位,可以存储一个二进制位(1或0)
1byte——1字节=8bit
1kb ——1024byte
1mb ——1024kb
1gb ——1024mb
1tb——1024gb
1pb ——1024tb
二、变量与常量
1.变量
定义:程序运行期间能被改变的量(必须先定义,后使用)
(1)局部变量(成员变量):在{}内部定义的变量
(2)全局变量:在{}外部定义的变量,不能出现名字相同的全局变量。 当全局变量与局部变量的名字冲突的情况下,局部变量优先。
示例一:
#include <stdio.h>
//全局变量
int gval = 2022;
/*printf("%d", g_val); 写法错误,
执行性的代码必须要放到{}内部,
定义类的代码可以放到函数外面*/
int main()
{
printf("%d\n",gval);
int a = 10;//局部变量
printf("a = %d\n",a);
return 0;
}
执行结果如图所示:
示例二:
在工程test_1_2中,我们在add.c中定义了一个int类型的全局变量g_val,然后在test_1_2.c中调用这个变量。
/*所以要先声明一下变量,即:*/
extern int g_val;
int main()
{
//直接在同一工程中跨不同的源文件,使用另一文件中的全局变量,会失败
printf("%d", g_val);
return 0;
}
在另一个.c文件中要用extern先声明变量g_val,然后再使用。
2.认识变量的作用域和生命周期
(1)作用域:
一个变量在哪里起作用,哪里就是它的作用域。一个{}内部就是一个单独的空间。
局部变量的作用域:变量所在的局部范围,即所在的{}内部。
全局变量的作用域:整个工程。
(2)生命周期:
变量的生命周期:变量的创建与销毁之间的时间段。
局部变量的生命周期:进入所在的局部范围,生命开始;出局部范围,生命结束。
全局变量的生命周期:整个程序的生命周期。
(3)当全局变量与局部变量的名字冲突的情况下,局部变量优先使用。
3.常量
定义:在程序运行过程中,其值不能被改变的量。
C语言中的常量分为以下几种:
(1)字面常量
int main()
{
3.14; //浮点型常量
10; //整型常量
"a"; //字符常量
"abcdef"; //字符串常量
}
(2)const定义的标识符常量(常变量)
int num = 10; //变量,因为可变。10为初始值
num = 20; //变量重新定义为20
const int num = 10; //若不希望num的发生改变,在int前面加上const即可。
printf("num = %d\n", num); //此时num是常变量,具有常属性
int arr[10] = { 0, 1 }; //10个元素,前两个元素是0、1,剩下的全为0
const int n = 10; //n是常变量,但本质上仍是变量
//int arr2[n] = { 0 }; //[]中的数必须是常数,不能是变量,也不能是常变量
printf("%d", arr[1]);
(3)#define 定义的标识符常量
#define Max 100 //定义后,Max的值无法再次改变
(4)枚举常量
枚举常量的定义:
enum 枚举类型名{常量1,常量2,常量3,…};
enum Sex//enum是枚举关键字,定义一个类型Sex
{
//这种枚举类型的变量未来可能的取值只有这三种,可以赋予初始值
mail,//不同取值用逗号隔开
femail,
secret//最后一个取值后面不加任何符号
};
int main()
{
//4、枚举常量
/*如:可以一一列举的常量:性别,血型等*/
enum Sex s = mail;
printf("%d\n", mail);//输出结果为0
printf("%d\n", femail);//输出结果为1
printf("%d\n", secret);//输出结果为2,这些值不能改
//mail = 3;错误写法
return 0;
}
指定式声明枚举变量
enum gender {mail=1,femail,secret=5};
mail为1,femail没有指定值则为前面的值递增1,即femail为2,secret为5.
注意:枚举类型只是int 型!其赋值和声明时只能是整数。
三、数据类型
#include <stdio.h>
int main()
{
printf("hello world\n");
//字符类型
char ch = 'a';
//整型
int age = 20;
//短整型
short num = 10;
//long
//long long 二者皆同short和int
//单精度浮点型
float weight = 55.2;
//双精度浮点型
double d = 0.0;
printf("%d\n",100);//打印一个整数 -- %d
printf("char的大小:%d\n", sizeof(char));
//sizeof--关键字——操作符——计算类型或者变量所占空间的大小
printf("int的大小:%d\n", sizeof(int));
printf("short的大小:%d\n", sizeof(short));
printf("long的大小:%d\n", sizeof(long));
printf("long long的大小:%d\n", sizeof(long long));
printf("float的大小:%d\n", sizeof(float));
printf("double的大小:%d\n", sizeof(double));
return 0;
}
结果如下,单位均为 “字节” :