第二章数据类型,运算符与表达式下

  1. 2.6 各类数值型数据间的混合运算

混合运算:整型(包括int,short,long)、浮点型(包括float,double)可以混合运算。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算.

说明:   这种类型转换是由系统自动进行的。

#include<stdio.h>

int main()
{
	int a = 10;//整型变量
	char c = 'a';//字符型变量
	printf("%d\n", a + c);//说明整型变量和字符型变量混合运算时把字符型变量按照ASCII值转换成整形变量进行输出


	int b = 20;//整型变量
	float d = 3.5222;//单精度浮点型
	printf("%f\n",b + d);//说明整型变量和浮点型变量混合运算时整形变量转换成浮点型变量,最后输出浮点型变量


	char e = 'a';
	float f = 5.5555;
	printf("%f\n", e + f);
	return 0;
}

  1. 2.7 算术运算符和算术表达式

  • 1. C语言的运算符有以下几类:
  • ⑴算术运算符 (+ - * / %)
  • #include<stdio.h>
    int main()
    {
    	//⑴算术运算符 (+ - * / %)
    	int a = 10;
    	int b = 5;
    	int c, d, e, f;
    
    	c = a + b;//+
    	printf("%d\n", c);//10+5=15
    
    	d = a - b;//-
    	printf("%d\n", d);//10-5=5
    
    	e = a * b;
    	printf("%d\n", e);//10*5=50
    
    	f = a % b;
    	printf("%d\n", f);//10%5=0
    	//这里说明一下%运算是取余数 10除5的余数为0,所以10%5=0
    
    	int g = 10;
    	int h = 3;
    	printf("%d\n", g % h);//10除3的余数为1,所以10%3=1
    	return 0;
    }

  • ⑵关系运算符 (><==>=<=!=)
  • #include<stdio.h>
    
    int main()
    {
    	//⑵关系运算符 (><==>=<=!=)
    	int a = 10;
    	int b = 20;
    	int c = 10;
    	if (a > b)
    		printf("a大于b\n");
    	else
    		printf("a小于b\n");
    	if (a == c)
    		printf("a等于c\n");
    	else
    		printf("a不等于c\n");
    	if (a != b)
    		printf("a不等于b\n");
    	if (a <= b)
    		printf("a小于或者等于c\n");
    	if (b >= a)
    		printf("b大于等于a");
    	return 0;
    }

  • ⑶逻辑运算符 (!&&||)
  • int main()
    {
    	//⑶逻辑运算符 (!&& || )
    	//在c语言中0表示假(flase),非0表示真
    	if (!0)//  !逻辑非表示相反
    		printf("假\n");
    	if (0)
    		printf("假");
    	int a = 10;
    	int b = 20;
    	if (!(a > b))
    		printf("a<b");
    //a>b为假,但是   !(a>b)逻辑非之后结果为真
    	return 0;
    }

  • ⑷位运算符   (<< >> ~ |∧&)
  • ⑸赋值运算符 (=及其扩展赋值运算符)
  • #include<stdio.h>
    int main()
    {
    	//⑸赋值运算符 (=及其扩展赋值运算符)
    	int a;
    	a = 10;//赋值运算 把10赋值给a
    	printf("%d\n", a);//a=10;
    	return 0;
    }

  • ⑹条件运算符 (?:)
  • #include<stdio.h>
    int main()
    {
    	int a = 5;
    	int b = 10;
    	int ret = (a > b ? a : b);//解读:a大于b吗?  如果大于则ret=a,否则ret=b;  
    	printf("%d\n", ret);//10
    	return 0;
    }

  • (8)指针运算符 (*和&)
  • #include<stdio.h>
    int main()
    {
    	int a = 10;
    	int* ptr = &a;//&是取地址操作符,把a的地址给ptr,   ptr是一个int*类型的指针里面存放的是a的地址
    	printf("%d\n", *ptr);//*是解引用操作符  *ptr=a=10
    
    	//ptr里面存放的是a的地址%p的打印地址
    	printf("%p\n", ptr);
    	printf("%p\n", &a);
    	return 0;
    }

  • (9)求字节数运算符(sizeof)
  • #include<stdio.h>
    
    int main()
    {
    	int a = 10;
    	char b = 'a';
    	double c = 1.1232323;
    	printf("%d\n", sizeof(a));//整形4个字节
    	printf("%d\n", sizeof(b));//字符型1个字节
    	printf("%d\n", sizeof(c));//双精度浮点型8个字节
    	return 0;
    }

  • (10)强制类型转换运算符( (类型) )
  • #include<stdio.h>
    
    int main()
    {
    	//(类型名)
    	int a = 10;
    	float b = (float)a;//把整型变量a强制类型转换为float类型
    	printf("%f\n", b);//10.000000
    
    
    	float x = 3.5;
    	int y = (int)x;//把浮点型x强制类型转换为整形变量
    	printf("%d", y);//3
    	return 0;
    }

  1. 2.8 逗号运算符和逗号表达式

逗号运算符:将两个表达式连接起来,又称为“顺序求值运算符”。求解过程先求表达式1,再求表达式2,整个表达式的值是表达式2的值

#include<stdio.h>

int main()
{
	int a;
	a = (3 + 5, 5 + 6);//表达式2得值
	printf("%d\n", a);//11
	return 0;
}

思考:

#include<stdio.h>

int main()
{
	//int a;
	//a = (3 + 5, 5 + 6);//表达式2得值
	//printf("%d\n", a);//11
	int a;
	a = 3 + 5, 5 + 6;
	printf("%d\n", a);//思考a是多少
	return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值