二、数据类型 运算符及表达式

本文介绍了C语言中的数据类型,包括常量、变量、常变量的概念、表示方式和注意事项。讲解了进制转换、数值存储方式,并通过示例展示了C语言中不同数据类型的输出格式。此外,还详细阐述了基本运算符,如算术、自增自减、比较和逻辑运算符,以及sizeof运算符的使用。内容涵盖C语言的基础知识,适合初学者学习。
摘要由CSDN通过智能技术生成

一、数据及表现形式

(一)数据:

在这里插入图片描述

(二)数据的表现形式:

在这里插入图片描述

1.常量:

1.1.常量概念:

在这里插入图片描述

1.2.代码表示:
#include <stdio.h>

#define PI 3.14//无等号 无分号  本质是常量
 
int main(){
	
	//整形常量 
	printf("%d",100);
	
	//换行 
	printf("\n");
	
	//实型常量
	printf("%lf\n",3.14);//\n还是换行 此方式使用较多 
	
	//字符常量:用''括起来的
	printf("%c\n",'c');
	
	//字符串常量,用""括起来
	printf("%s\n","china"); 
	
	//符号常量,用#define定义 见第三行 
	printf("%lf\n",PI); 
	
	return 0; 
}
1.3.常量注意事项:

在这里插入图片描述

1.3.1.转义字符的具体使用:
printf("abc\n");//\n换行
	printf("abc\td");//\t制表符,c后面空4空格才有d 

2.变量:

2.1.标识符:

在这里插入图片描述

2.2.变量概念:

在这里插入图片描述

2.3.变量的实质:

系统分配的空间,空间大小由数据类型决定

2.4.变量的特点:

I.运行期间值可以被改变,系统根据数据类型分配空间
II.可以通过变量名或地址访问内存空间

3.常变量:

3.1.概念:

本质是变量,只不过值不可以被改变

3.2.格式:

在变量前加上const即可:

const int a = 1;

(三)注意事项:

在这里插入图片描述

二、进制

(一)定义:

(二)十进制转其他进制:

在这里插入图片描述

(三)二进制 八进制 十六进制互转:

在这里插入图片描述

(四)C语言中进制的表示:

在这里插入图片描述

	//十进制输出
	printf("%d\n",25);//输出结果:25 
	
	//八进制输出
	printf("%d\n",025);//输出结果:21 
	printf("%o\n",025);//输出结果:25
	
	//十六进制输出
	printf("%d\n",0x25);//输出结果:37 
		printf("%x\n",0x25);//输出结果:25

(五)计算机中数值存储方式:

1.源码:

在这里插入图片描述
注意事项:
在这里插入图片描述

2.反码:

在这里插入图片描述
注意事项:
在这里插入图片描述

3.补码:

在这里插入图片描述
注意事项:
在这里插入图片描述

4.C语言练习:

//对于计算机而言,二进制 八进制 十六进制的输入是补码 	
	char a = 0x85;
	/*
	补码:1000 0101
	原码:1111 1011 [补码符号位不变 其他位取反加一] 
	*/ 
	
	//以十进制输出a
	printf("%d\n",a); 
	
	//对于用户而言,十进制的输入是原码
	 char b = -15;
	 /*
	 原码:1000 1111
	 反码:1111 0000
	 补码:1111 0001 
	 */
	 
	 //以十六进制输出b
	 printf("%x\n",b); 
	  

三、基本运算符与表达式

(一)sizeof运算符:

1.定义及概念:

在这里插入图片描述

//注:%d表示有符号输出	%u表示无符号输出
	 printf("%u\n",sizeof(int)); //4

四、数据类型

(一)基本数据类型:

1.整型:

1.1.整型分类:

在这里插入图片描述
注:一个字节 = 8位,也就是1B = 8bit 1KB = 1024B

1.2.整型常用的打印格式:

在这里插入图片描述
注意,上表中的%l %ll后面都需要添加d,否则无法输出,可见系列程序书写方式

1.3.C语言演示:
//整型定义和输出[默认] 
	 int a = 123;
	 printf("%d\n",a);
	 
	 //短整型定义和输出
	 short int b = 2;
	 printf("%hd\n",b); 
	 
	 //长整型定义和输出
	 long int c = 333;
	 printf("%ld\n",c); 
	 
	 //双长整型定义和输出
	 long long int d = 3333333;
	 printf("%lld\n",d); 
1.4.有符号数和无符号数的区别:

在这里插入图片描述注意点:
1.有符号数的最高位是符号位,无符号数的最高位是数值位
2.有符号位使用%d输出,无符号位使用%u输出
3.无符号位只能表示正数
4.如果将无符号位使用%d输出,则机器认为是有符号数,可以输出正数

1.5.有符号数和无符号数的取值范围:

在这里插入图片描述

2.字符型:

2.1.概念:

在这里插入图片描述

2.2.C语言演示:
char a = 'a';
	//输出使用%c 
	printf("%c\n",a);
	//输出a的ASCII值
	printf("%d\n",a);
	return 0; 

字符型本质上是一个字节的整型,它的整型对应的是ASCII值
赋值使用字符和整型都是可以的,等价

a=97 A=65 大写和小写之间相差32
小写转大写-32 大写转小写+32

char a = 'a';
	printf("%c\n",a);//输出a
	printf("%c\n",97);//输出a 
	printf("%c\n",a-32); //输出A
	printf("%c\n",97-32);//输出A 
2.3.char的取值范围:

在这里插入图片描述

//char类型的取值范围是-128~127
	char c = 128;//超出范围
	printf("%d\n",c);//输出-128
	//为什么是这样的结果? 

Alt

3.浮点型:

3.1.概念:

在这里插入图片描述

3.2.C语言示例:
//定义一个float类型
	float f = 3.14f;
	printf("%f\n",f);// 3.140000
	//定义一个double类型
	double d = 5.33;
	printf("%lf\n",d);//5.330000

float类型格式为%f,数字后面跟f
double类型格式为%lf,数字后面没有东西

4.字符串常量:

4.1.概念:

在这里插入图片描述

4.2.字符串输出函数printf:
4.2.1.一般输出:
int a = 10;
printf("%d\n",a);
4.2.2.输出字符串:
//字符串输出
	printf("country =%s\n","china");//country =china
	printf("china");//china

注:

/*有小数3.12345678 请输出3.12*/
	//%m.n:m是输出多少位,n是输出几位小数
	double d = 3.12345678;
	printf("%4.2lf\n",d);//输出:3.12,[注]小数点也占一位 
4.2.3.输入字符串scanf:

在这里插入图片描述

int a;
printf("请接收一个整数:");
scanf("%d",&a);
printf("%d\n",a);
4.2.4.字符的输入输出函数putchar(输出) getchat(输入):
char sex; 
	printf("请输入性别并答打印输出:"); 
	sex = getchar();
	putchar(sex);
	putchar('\n');//换行

getchar()和putchar()只能输入输出一个字符,输入“f”可以打印 但输入“男”不可以打印

五、运算符与表达式:

(一)运算符:

1.常用运算符分类:

在这里插入图片描述

2.算数运算符:

在这里插入图片描述

3.自增自减运算符:

在这里插入图片描述

int a = 3;
int b = 0;
b = a ++;
printf("%d\n%d\n",a,b);//b = 3 a = 4:先赋值后自加

若a=3,b=0;a++,b= a,求a b的值:a先自加为4,后赋值给b,则a=b=4

4.比较运算符:

在这里插入图片描述

5.逻辑运算符:

在这里插入图片描述

6.运算符优先级:

在这里插入图片描述

7.强制类型转换运算符:

在这里插入图片描述

六、真题演练:

在这里插入图片描述
short的范围:-32768!~32767,unsigned short的范围:0~65535
运行到32768时超出范围,[循环进入]=65535-32767=32768=

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值