【C语言学习记录】(二)——数据的表现形式及其运算①

一、计算机中的单位

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;
}

结果如下,单位均为 “字节” :
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值