C语言——变量

变量

1.为什么需要变量

变量是程序的基本组成单位

#include <stdio.h>
int main(void){
	int num = 1; //定义了一个整型变量,取名为num,并赋值为1
	double score = 2.3;//小数
	char gender = 'A';//字符
	char name[] ="尚硅谷";//字符串
	//说明  格式化输出
	//1.如果输出的整数 %d
	//2.如果输出的是小数 %f ,如果希望保留小数点%.4f
	//3.如果输出的是字符 %c
	//4.如果输出的是字符串 %s
	printf("num=%d score=%.2f gender=%c name=%s",num,score,gender,name);
	//getchar();//将控制台停留,等待输入
	return 0;
}

2.变量的介绍

2.1概念

变量相当于内存中一个数据存储空间的表示,可以将变量看作一个房间的门牌号,通过门牌号我们可以找到房间,而2通过变量名可以访问到变量(值)

2.2基本使用步骤

(1)声明变量 int num;

(2)赋值 num = 60;

(3)使用 printf(“num=%d”,num);

3.变量使用注意事项

1)变量表示内存中的一个存储区域

2)该区域有自己的名称和类型

3)必须先声明,后使用

4)该区域的数据可以在同一范围内不断变化

4.变量的数据类型

image-20221016084541722

注意:在c中,没有字符串类型,使用字符数组表示字符串

在不同的系统上,部分数据类型字节长度不一样,int 2 或 4

5.整型的使用细节

(1)各种类型的存储大小与操作系统,系统位数和编译器有关,目前通用的以64位系统为主。

image-20221016095036174

1> c语言的整型类型,分为有符号signed和无符号unsigned两种

2> c程序中整型常声明为int型 ,除非不足以表示大数,才使用long long

3> bit(位):计算机中的最小存储单位。byte(字节):计算机中基本存储单元。

1 byte = 8 bit


查看字节代码

#include <stdio.h>

int main(){
	//如果定义成int,默认就是带符号(分正数和负数)
	int num1 = -2147483649;//越界
	signed int num2 = -2147483647;
	//查看系统int有几个字节
	printf("\nint的字节数=%d",sizeof(int));
	
	printf("\nnum1=%d num2=%d",num1,num2);
	
	getchar();//将控制台停留,等待输入
}

有关越界 long long型

#include <stdio.h>
int main(){
	long long num1 = 12147483647;
	
	//如果输出的是long 则格式%lD
	//如果输出的是long long  则格式%llD
	printf("%lld",num1);
	getchar();
}

浮点类型

1.浮点类型的分类

image-20221016101543154

说明:

1> 在机器中存放形式 ,浮点数=符号位+指数位+尾数位,浮点数是近似值

2>尾数部分可能丢失,造成精度损失

2.使用细节

1)浮点常量默认为double型,声明float型常量时,必须后加‘f’或‘F’

2)两种表示形式:1.十进制数形式:如5.12 512.0f .512(必须有小数点) 2.科学计数形式:如:5.12e2 5.12E-2

3)printf(“d1=%f”,d1);//在输出时,默认保留 小数点6位

代码:

#include <stdio.h>
int main(){
	
	//浮点类型常量默认为double 型,声明float型常量,须后加f或F
	
	float d1 = 1.189099500;//从“double”到“float”截断,1.1是double
	float d2 = 1.1f;//1.1f就是float
	double d3 = 1.3;//ok
	
	double d4 = 5.12;
	double d5 = .512;//等价0512
	
	double d6 = 5.12e2;//等价5.12*(10^2)=512
	double d7 = 5.12e-2;//等价5.12*(10^-2)=0.0512
	
	//在输出时,如果%f默认保留小数点6位
	printf("d1=%.15f d2=%f d3=%f d4=%f d5=%f d6=%f d7=%f",d1,d2,d3,d4,d5,d6,d7);
	getchar();
}

字符类型

1.基本介绍

字符类型可以表示单个字符,字符类型是char,char是1个字节(可以存字母或数字),多个字符称为字符串,在语言中使用char数组表示,数组不是基本数据类型,二十构造类型

#include <stdio.h>
int main(){
	
	char a = 'a';
	char b = 'b';
	char c = 97;//ASCII编码表对应97的字符是a
	
	int num = c+10;//
    
	printf("a=%c b=%c c=%c\n,",a,b,c);
	
	//注意
	//这里编译器是c89
	//要求变量的定义在执行语句之前
//	int num = c+10;
	printf("num=%d",num);
	getchar();    
}

image-20221016162740031

布尔类型:boolean

1.C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真

2.C语言的宏定义

#include <stdio.h>

//宏定义
#define BOOL int
#define TURE 1
#define FALSE 0

int main(){
	
	int isPass = -1;//0表示假,非0表示真
	//可以使用宏定义来完成
	//定义一个布尔变量
	BOOL isOK = TURE;//等价int isOK = 1

	if(isPass){
		printf("通过考试");
	}		
	if(isOK){
		printf("ok");
	}	
	getchar();
}

基本数据类型转换

1.自动类型转换

介绍:当c程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。

image-20221016164215768

image-20221016164244519

演示案列:

//自动转换
#include <stdio.h>
int main(){
	
	//案列1
	char c1 = 'a';
	int num1 = c1;//ok
	double d1 = num1;//ok
	
	//案例2
	short s1 = 10;
	int num2 =20;
	int num3 = s1 + num2;//ok
	
	//案例3
	float f1 = 1.1f;//ok
	double d2 = 4.56245577;
	f1 = d2;//出现精度损失
	
	printf("d1=%f",d1);
	printf("num3=%d",num3);
	printf("f1=%.8f",f1);
	getchar();

}

2.强制类型转换

1.介绍:将精度高的数据类型转换为精度小的数据类型。使用时要加上强制转换符(),但可能造成精度降低或溢出

//强制转换
#include <stdio.h>
int main(){
	double d1 =1.987;
	int num = (int)d1;//注意,不是进行四舍五入,而是直接截断小数点后的部分
	
	//强制转换只对最近的数有效,如果希望针对更多的表达式转换,使用()
	int num2 = (int)3.5*10 + 6*1.5;//39
	int num3 = int(3.5*10 + 6*1.5);
	
	printf("\nnum2=%d",num2);
	printf("num=%d d1=%f",num,d1);//d1仍然是double类型
	getchar();
}
	
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值