【c语言】学习笔记(二)

【c语言】学习笔记

  1. 操作数:运算符的作用对象
  2. 运算符分类:单目运算符(一个操作数)、双目运算符(两个操作数)、三目(唯一一个)
  3. 短路求值(最小化求值):一种逻辑运算符的求值策略,c语言中逻辑与和逻辑非采用短路求值。简单来说就是从左到右判断,只要能得出逻辑表达式的结果就停止判断直接得出答案。
    例子:
#include <stdio.h>

int main(){
	int a = 5 , b = 3;
	(a = 0) && ( b = 5 );
	printf("a = %d , b = %d",a,b);
	return 0;
}
a = 0 , b = 3
--------------------------------
Process exited after 0.02684 seconds with return value 0
请按任意键继续. . .
  1. 5 / 3 = 1 整型除以整型,结果为整型,直接舍弃小数。
  2. 10 / 6.0 = 1.666667 // 结果为无限循环小数,小数点后第六位四舍五入。
  3. 求余运算符两边要求均为整型。
  4. 定义数据类型时其实定义了该数据占用内存的大小,字符char类型一个字节,整型int 4个字节
#include <stdio.h>

int main()
{
        unsigned char a, b, c;

        b = c = 200;
        a = b + c;

        printf("a = %u\n", a);

        return 0;
}

输出为144(下边括号内数字表示进制)
200(10) = 1100 1000(2)
1100 1000(2) + 1100 1000(2) = 1 1001 0000(2)
由于 char 类型占一个字节(8 位),因此舍弃掉最前边的进位,结果为 1001 0000(2) = 144

  1. count != 0 && sum/count
    这个语句确保除数不为0,当除数为0时就不会计算sum / count

  2. getchar();
    从标准输入流中获取下一个字符,返回的是int型,可以在连续多次输入字符时过滤掉回车 。
    int ch;while((ch = getchar()) != '\n'){...}

  3. else悬挂:c语言中,else始终与最接近它的if匹配,解决办法:加上大括号。

  4. 小技巧:用逻辑运算符“==”时,可以把两个操作数的位置对调一下,这样漏写一个等于号时会有报错,方便调试。
    例如if('Y' == letter)

  5. long long int 对应 %lld

  6. 注意i++和++i在赋值时的区别:

#include <stdio.h>

int main(){
	
	int i = 6 , j ;
	j = i++;
	printf("i = %d , j = %d\n" , i , j);
	
	i = 6;
	j = ++i;
	printf("i = %d , j = %d\n" , i , j);
	
	return 0;
}
i = 7 , j = 6
i = 7 , j = 7

--------------------------------
Process exited after 0.02408 seconds with return value 0
请按任意键继续. . .
  1. 逗号运算符:从左到右依次计算表达式的值,赋值时取最后一个表达式的值。(不是所有逗号都是逗号运算符,有些只是分割符)
a = (b = 3 , (c = b + 4) + 5) //先将b赋值为3,再将c赋值为b+4也就是7,接着把c的值加上5,最后赋值给变量a,也就是12
  1. c语言中唯一一个三目运算符
语法:exp1 ? exp2 : exp3;
exp1是条件表达式
如果为真,则返回exp2
如果为假,则返回exp3

举一个简单例子

if (a > b){
	max = a;
}
else{
	max = b;
}

上面的代码块可以替换为下列形式。

max = a > b ? a : b;
  1. goto语句
语法:goto 标签;	//标签定位于某个语句前边

举个例子:

#include <stdio.h>

int main(){
	
	int i = 5;
	while (i++){
		
		if (i > 10){
			goto A;
		}
	}
A:	printf("Here! i = %d\n",i);
	
	return 0;
}
Here! i = 11

--------------------------------
Process exited after 0.04045 seconds with return value 0
请按任意键继续. . .

一般用在跳出多层循环,但是我们要尽量避免使用goto语句,因为它容易破坏代码的逻辑性。

  1. 注释
//注释
/*多行
  注释*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端corner

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值