c语言笔记;三目运算符,逗号运算符,隐式类型转换和强制类型转换

三目运算符: ?:

表达式1 ? 表达式2 :  表达式3

表达式1是一个判别表达式。

如果为真。整个三目运算取值表达式2.    ?XXXX

如果为假。整个三目运算取值表达式3     :XXXX

	int a = 0;
	int b = 1;
	printf("%s\n", a > b ? "a>b": "a<b");

输出
a<b

嵌套三目运算

	int a = 2;
	int b = 1;
	int c = a < b ? 50 : a < b ? 3 : 4;  //嵌套
	printf("c=%d\n", c);

输出
c=4

逗号运算符:(优先级最低)

	int a=10, b=20, c=30;
	int x = (a = 1, b = 2, c = 3); //逗号运算符,小括号优先级最高先做括号中的运算
	//x值是整个逗号表达式中最后一个的值
	printf("x=%d\n", x);
	printf("a=%d\n", a);
	printf("b=%d\n", b);
	printf("c=%d\n", c);
输出
x=3
a=1
b=2
c=3

隐式类型转换:

由编译器自动完成。

由赋值产生的类型转换。小---》大 没问题  大---》小 有可能发生数据丢失

int r=3;

float s= 3.14 *r* r;

	int a = 321;

	char ch = a;
	printf("ch=%d\n",ch);
输出
ch=65

321:256 125 64 32 16 8 4 2 1 

char类型(8bit)ch 0,因为最多只能存储八位,所以从右到左依次相加得65

强制类型转换:

语法:(目标类型)带转换变量

           (目标类型)带转换表达式

		float price = 3.6;
		int weight = 4;

		double sum = (int)price * weight;   //将price强转整型3.6--》3  

		printf("价格:%lf\n", sum);
输出
sum=12


		float price = 3.6;
		int weight = 4;

		double sum = (int)(price * weight); //算出来的值强转为整型

		printf("价格:%lf\n", sum);
输出
sum=14

大多数用于函数调用期间,实参给形参传值

int *p = (int *)malloc(100);?????

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值