变量的基本介绍

变量的基本介绍

1、变量名的命名规则

  1. 变量名只能是由字母数字下划线组成,并且中间不能包含空格。

  2. 变量名的首字母必须为字母或者下划线,不能为数字。

  3. 变量名不能使用关键字作为变量名。

2、变量的分类

8.2.1、根据单个变量的空间长短可分为:

a)字符型变量(1个字节):char类型、unsigned char类型

b)短型变量(2个字节):short类型、unsigned short类型;

c)长型变量(4个字节):int、unsigned int(或long、unsigned long)或float类型以及指针变量等;

d)超长型变量( 8个字节):double类型、__int64或long long等。(有些编译器不支持__int64类型,有些编译器不支持long long)

8.2.2、根据类型可以分为:

a)整数型变量:包括char、 unsigned char、short、 unsigned short、int、 unsigned int(或long、unsigned long )以及 __int64或long long等。

b)浮点数型变量:float类型(单精度)、double类型(双精度);

c)其他变量类型:数组变量、指针变量以及结构体对象等。

3、基础数据类型

3.1、基础数据类型—整型

1.整型根据有无符号分为:有符号,无符号;

2.整型根据字节长短分为:整型,长整型,短整型。int 4;short int 2(可简写为short);

八字节整型变量

整型变量中还包括8字节(64位)整型变量,是不常用的变量类型。

例如:_int64或long long(有些编译器中不支持__int64,有些编译器不支持long long)。

printf函数输出64位数的语法,在window下和linux下是不一样的。

windows下是大写I再加64d64u

printf("%I64d/n",a); 

printf("%I64u/n",a);

linux下是两个小写l在d或u

printf("%lld/n",a);

printf("%llu/n",a);

3.2、基础数据类型—浮点型

1.单精度,双精度,长双精度。

2.单精度:32位float;双精度64位double;长双精度128 long double。

=浮点型变量

浮点型变量就是用于存储带有小数的数据的变量,分为单精度(float)与双高精度(double)两种类型。一般浮点型变量不与unsigned关键字连用,缺省是有符号变量。

浮点型变量的存储结构比较复杂,本节主要讨论float和double类型的存储范围。

Float类型的指数位有8位:

1bit(符号位)8bits(指数位)23bits(尾数位)

而double类型的指数位有11位

1bit(符号位)11bits(指数位)52bits(尾数位)

float类型是4个字节(32)位变量,总共有6到7位的有效精度。(2^23 = 8388608)

double 类型是8个字节(64)位变量,总共有15-16位的有效精度。(2^52 = 4503599627370496)

float的指数范围为-127~ 128,而double的指数范围为-1023~1024,并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所能表达的绝对值最小的数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。

3.3、基础数据类型—字符型

1.Char 数据用单引号包围,占用一个字节,8位,取值范围,-128~127。

2.Wchar_t 数据用单引号包围,占用两个字节,16位或者32位。

3.4、基础数据类型—布尔型

bool本质为条件判断,只有两种情况0或1。

3.5、基础数据类型—派生型

1.指针,枚举,数组,结构体,共同体,类类型。结构体与共同体的区别:

2.结构体(structure)是一种构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型,而且每个成员的数据类型可以相同也可以不相同。共同体(union)将几种不同的变量储存在同一内存单元中,也就是使用覆盖技术,几个变量互相覆盖,这种几个不同的变量共同占用一段内存的结构,可见二者最大的区别就是所占用的内存,结构体(structure)所占用的内存是分量内存之和,共同体(union)所占用的内存是等于最大的分量的内存。

4、变量的使用

#include<stdio.h>
int main() {
	//2个整数的相加
	int num1 = 1;
	int num2 = 10;
	scanf_s("%d%d",&num1,&num2);
	printf("%d",num1+num2);
	return 0;
}

5、变量的作用域

#include<stdio.h>
int g = 100;
int main() {
	int a = 10;
	{
		int b = 20;
		printf("%d\n", b);
		printf("l:%d\n", a);
		printf("g:%d\n",g);
	}
	//printf("%d\n",b);未定义b
	printf("2:%d\n",a);
	printf("g:%d\n",g);
	return 0;
}

6、局部变量的作用域

变量所在的局部范围

全局变量的作用域

整个工程

7、生命周期

局部变量:进入局部变量所在的范围,生命周期开始,出局部变量所在的范围的时候,生命周期结束

全局变量: 进入整个程序的生命周期

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值