数据类型和算数运算符

数据类型

数据类型相关的关键字

void关键字

  • 不能定义类型,没有void类型的变量
  • 修饰函数参数和返回值,代表没有参数和返回值

存储相关关键字

register, static, const, auto, extem

register

  • 告诉编译器这个变量是寄存器变量,尽量将其存储空间放到寄存器之中
	register char a = 'a';
	register short b;
	register int c;
  • 因为寄存器变量理论上存在寄存器中,所以不能取地址,只有存在内存中的数据才有地址

static

  • 修饰全局变量,局部变量,函数

const

  • 修饰常量,修饰后的量变成只读的,不能在修改它的值了

auto
auto int a 和 int a 基本等价,了解即可

extern

  • 外部的意思,一般用于函数和全局变量的声明

控制语句相关关键字

if ,else , break, for, while, do, switch ,case, goto, default

其他关键字

  1. sizeof
	//sizeof 测试变量,数组所占内存空间大小,单位字节
	int a = 10;
	int num = sizeof(a); //4
  1. typedef
	//typedef 为一个已有的类型重新起个类型名,并没有创建一个新的类型
	typedef int SSNAME; //定义在最前面
	SSNAME newvalue = 2222; //可以使用了
  1. volatile
	//告诉cpu每次用volatile变量时,重新去内存中去,保证每次都是最新的值,而不是寄存器的备份
	//现在较少使用
	volatile int c = 25;

基本数据类型

  1. 字符变量
//字符数据
//直接常量 如  'a','b','c'
//转义字符 如 '\n','\t'
//字符变量
char a = 'a';
char b = 66;
printf("a=%c,b=%c", a, b); //a=a,b=B
  1. 整型变量
//整型数据
	//有/无符号短整型 short 2 个字节
	//有/无符号整型   int   4 个字节
	//有/无符号长整型 long  4 个字节

	//按照进制分
		//10进制 数字1-9开头
	int int1 = 12;
		//8进制 数字 0开头
	int int2 = 012;
		//16进制  数字0x开头
	int int3 = 0x13;
	printf("10进制=%d,8进制=%d,16进制=%d\n", int1, int2,int3);//10进制=12,8进制=10,16进制=19
  1. 浮点类型
//浮点型数据
	//double float ,不加f都是double类型
		//科学计数法
	double double1 = 123e-3;  //123*10^-3
	printf("double1=%f", double1); //double1=0.123000

格式化输出字符

符号 含义
%d 十进制有符号整数
%u 十进制无符号整数
%x 十六进制表示的整数
%o 八进制表示的整数
%f float型浮点数
%if double型浮点数
%e 指数形式的浮点数
%s 字符串
%c 单个字符
%s 字符串
%p 指针的值
特殊应用

%3d 要求宽度为3位,不足3位,前面空格补齐
%03d 要求宽度为3位,不足3位,前面0补齐
%-3d 要求宽度为3位,不足3位,后面空格补齐
%.2f 小数点后保留两位

类型转换

  1. 自动类型转换
    char,short -> signed int -> unsigned int -> long -> float -> double
  2. 强制类型转换
//强制类型转换
	//(类型说明符)表达式
	double type1 = 8.125;
	int type2 = (int)type1;
	printf("type2=%d,sizeof = %d\n",type2,sizeof(type2)); //type2=8,sizeof = 4

运算符

算数运算符

	//算数运算符
	// + ,- ,* ,/ ,+= ,-= ,*= ,/= , %=

关系运算符

	//关系运算符
	// > , < , >= , <= , == , !=

逻辑运算符

	//逻辑运算符
	// 逻辑与
		//&&
	//逻辑或
		//||
	//逻辑非
		//!

条件运算符

	//条件运算符
	// 条件表达式 ? 结果为真 : 结果为假 
	2 < 3 ? printf("是的,小于三\n") : printf("不对,大于三\n"); //是的,小于三

自增自减运算符

	//自增自减运算符
	// ++ 自增
	// -- 自减
	int data1 = 10;
	int data2 = 10;
	int data3 = 10;
	int data4 = 10;
	printf("data1 = %d\n", data1++);  //先使用,后自增		data1 = 10
	printf("data1实际的值 = %d\n",data1); //值已经改变		data1实际的值 = 11
	printf("data2 = %d\n", ++data1); //先自增,后使用		data2 = 12
	printf("data3 = %d\n", data3--);   //先使用,后自减		data3 = 10
	printf("data3实际的值 = %d\n", data3); //值已经改变		data3实际的值 = 9
	printf("data4 = %d\n", --data4);   //先自减,后使用		data4 = 9
posted @ 2022-03-10 12:41  阿肆啊  阅读(51)  评论(0编辑  收藏  举报