类型、运算符与表达式

类型

变量

  1. 变量是装数据的容器,数据变,容器不变。
  2. 变量在使用前要先定义,基本格式为:变量类型名 变量名1,变量名2…;,例如定义a,b,c三个变量:int a,b,c;
    int a = 0,b,c = 0;//初始化

变量名

  • 是由字母('_'被看作字母)和数字组成的序列,但第一个字符必须为字母
  • 大小写字母是区分的
  • 如int等关键字,已被语言本身占有,不能作为变量名

基本类型

C语言有且仅有的四种基本类型
char 字符型,占用一个字节的长度,可以存放一个字符;
int 整型,用来装整数,长度由所在机器而定,通常占4个字节;
float 单精度浮点型
double 双精度浮点型
测试代码

#include <iostream>
using namespace std;
int main()
{
	cout << sizeof(char) << endl;
	cout << sizeof(int) << endl;
	cout << sizeof(float) << endl;
	cout << sizeof(double) << endl;
	return 0;
}

在这里插入图片描述

施加在基本类型上的限定符

short int a;//int可省略不写
long int a;//int可省略不写

  1. short限定符尽可能的使int变短,long尽可能的使int变长
  2. short和int类型不小于16位,int型可以是16位和32位,long类型不小于32位,具体由所在机器而定。
  3. signed和unsigned可用来限定char型和所有整型(包括被short或long限定过的整型)。
  4. signed整型等价于整型
  5. unsigned整型使得原有整型长度不变,符号位变成了数据位,仅能表示0和正数。
  6. signed char强制char可以存储符号整数,unsigned char强制char可以存储无符号整数,char不加任何限定,则是否有符号根据所在机器而定。

常量

c = a + 10; //10常量,int型
c = a + 10L; //常量,long型(也可以加l后缀)
c = a + 10.0; //常量,double型
c = a + 10.0f; //常量,float型(也可以加F后缀)

测试代码

#include <iostream>
using namespace std;
int main()
{
	cout << sizeof(10.0) << endl;
	cout << sizeof(10.0f) << endl;
	return 0;
}

在这里插入图片描述
整数常量还可以用八进制或者是十六进制表示

c = a + 31;
c = a + 037; //0开头代表八进制
c = a + 0x1f; //0x开头表示十六进制

测试代码

#include <iostream>
using namespace std;
int main()
{
	cout << 31 << endl;
	cout << 037 << endl;
	cout << 0x1f << endl;
	return 0;
}

在这里插入图片描述
字符常量,需要用单引号将字符括起来

c = a + ‘0’;

字符常量也可以参与运算,实际是其对应的ASCII码参与运算。
测试代码

#include <iostream>
using namespace std;
int main()
{
	cout << 1 + '0' << endl;
	return 0;
}

在这里插入图片描述

转义字符

符号意思
\a响铃符
\b回退符
\f换页符
\n换行符
\r回车符
\t横向制表符
\v纵向制表符
\\反斜杠
\?问号
\’单引号
\"双引号
\ooo八进制数
\xhh十六进制数
\0字符串结束的标识

字符常量

用双引号包裹起来的>=0个的字符组成的序列为字符串常量

“I am a string” “”

字符串中的"用转义字符"表示
多个字符串可链接,如"I am a string"等价于"I am a " “string”
测试代码

#include <iostream>
using namespace std;
int main()
{
	cout << "I am a string" << endl;
	cout << "I am a "	"string" << endl;
	return 0;
}

在这里插入图片描述

运算符与表达式

算术运算符

+、-、*、/、%
%:x%y结果是x除以y的余数部分
x和y必须是整型操作数,在有负操作数的情况下,取模运算结果的符号取决于具体机器的实现。
/:整数除法会阶段结果中的小数部分。
测试代码

#include <iostream>
using namespace std;
int main()
{
	cout << 5 / 2 << endl;
	return 0;
}

在这里插入图片描述
++ - -
以++为例,x++、++x

#include <iostream>
using namespace std;
int main()
{
	float x = 1.1;
	float y;
	y = x++;
	cout << x << endl;
	cout << y << endl;
	return 0;
}

在这里插入图片描述

#include <iostream>
using namespace std;
int main()
{
	float x = 1.1;
	float y;
	y = ++x;
	cout << x << endl;
	cout << y << endl;
	return 0;
}

在这里插入图片描述

关系运算符

x > y: x大于y返回真,否则返回假
x < y: x小于y返回真,否则返回假
x >= y: x不小于y返回真,否则返回假
x <= y: x大于y返回真,否则返回假
x == y: x等于y返回真,否则返回假
x != y: x不等于y返回真,否则返回假

#include <iostream>
using namespace std;
int main()
{
	int x = 1, y = 2;
	int z = x > y;
	cout << z << endl;
	z = y > x;
	cout << z << endl;
	return 0;
}

在这里插入图片描述

逻辑运算符

&&(且) ||(或) !(非)
测试代码

#include <iostream>
using namespace std;
int main()
{
	int x = 1, y = 0, z = 1;
	int m = x && y;
	cout << m << endl;
	int n = x && z;
	cout << n << endl;
	int p = x || y;
	cout << p << endl;
	return 0;

}

在这里插入图片描述

赋值运算符

=
+=
-=
*=
/=
%=

a += 10;等价于a = a + 10

位运算符

&(按位与)
|(按位或)
<<(算数左移)
>>(算数右移)
~(按位取反)
^(按位异或)

bitse<转换后的位数>(被转换成2进制的数)

#include <iostream>
#include <bitset>
using namespace std;
int main()
{
	short int x = -111;
	short int y = 1234;
	short int z = x & y;
	cout << bitset<sizeof(x) * 8>(x) << endl;
	cout << bitset<sizeof(y) * 8>(y) << endl;
	cout << bitset<sizeof(z) * 8>(z) << endl;
	return 0;
}

blog.csdnimg.cn/30d4ee052d8a4ef1acd8dfa5aff97d93.png#pic_center)

其他运算符

sizeof运算符
用法:sizeof(数据类型、变量或常量)
问号运算符
<表达式1>?<表达式2>:<表达式3>
测试代码

#include <iostream>
using namespace std;
int main()
{
	int x = 1;
	int y = 2;
	cout << (x > y ? 'A' : 'B') << endl;
	x = 2;
	y = 1;
	cout << (x > y ? 'A' : 'B') << endl;
	return 0;
}

在这里插入图片描述

类型转换

自动转换

赋值语句中的自动转换
从“float”转换到“int”,可能丢失数据
在这里插入图片描述
混合运算中的自动转换
测试代码

#include <iostream>
using namespace std;
int main()
{
	short int a = 1;
	int b = 1;
	float c = 1.0;
	double d = 1.1;

	cout << sizeof(a) << endl;
	cout << sizeof(a+b) << endl;
	cout << sizeof(a+b+c) << endl;
	cout << sizeof(a+b+c+d) << endl;

	unsigned int m = 1;
	int n = -2;
	cout << m + n << endl;
	return 0;
}

强制转换
(类型名)表达式
(float)a;//把变量a转换成float类型
(int)(c+d);//把表达式c+d的结果转换成int型
(float)5;//把数值5(默认为int型)转换成float型
注:类型转换只体现在结果上,并不会改变被转移变量的类型。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值