C语言笔记(第二天)

这篇C语言笔记涵盖了常量、宏定义、数据类型、取值范围、字符与字符串、算术和逻辑运算符、流程控制(if、switch、while、do while、for)以及break和continue的使用。讲解了如sizeof()的运用,数据类型的取值范围,以及在不同情况下的运算规则。强调了养成使用大括号的习惯和理解短路求值的重要性。
摘要由CSDN通过智能技术生成

S1E5:常量和宏定义

符号常量:#define 标识符 常量,#为预处理命令,标识符与变量名命名规则相同。

作业收获:

#define F(n) 2*n,则F(3+2)等于8!!

意味着宏定义可含参,且预处理仅改变参数。

S1E6:数据类型

详细:https://blog.csdn.net/aa98865646/article/details/104519028

sizeof()是运算符,不是函数!

对type_name必须使用括号!

①sizeof(object);

②sizeof(type_name);

③sizeof object;

64位系统下int与long int相同(int可省略)

没有128位cpu?因为没有需求,32位升级64位主要是当时地址长度不够。

作业收获:

int范围:-2,147,483,648~2,147,483,647(31次方减一)

unsigned int范围:0 ~ 4,294,967,295(32次方减一)

S1E7:取值范围

计算机如何存放负数?

补码

正整数的补码是其二进制表示,与原码相同。

负整数的补码是原码除符号位(0正1负)外的所有位取反后加1。

已知一个数的补码,求原码的操作其实就是对该补码再求补码:

⑴如果补码的符号位为“0”,表示是一个正数,其原码就是补码。

⑵如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。

作业收获:

1000 0000表示-128,取反加一成9位数也不算溢出。

S1E8:字符和字符串

char和unsigned char可以拿来存整数。

char 变量名[数量]; [] 是下标运算符

char 变量名{字符,字符,字符};

变量名[索引号] = 字符;

作业收获:

ASCII中大写字母+32变成对应小写字母。

字符串里多余的空间用'\0'填充。y

S1E9:算术运算符

优先级:https://fishc.com.cn/thread-67664-1-2.html

一般输出的结果数据类型不变,但有时会向精度更大修正。

作业收获:

S1E10:关系运算符和逻辑运算符

关系运算符:4种 优先于 2种

关系表达式:逻辑值0假1真

关系运算符 优先于 逻辑运算符(非!) 优于(与&&) 优于(或||)

短路求值:左边运算已确定结果,则右边不运算

作业收获:

char *name = “FishC” 应该与 char name[] = {‘F’, ‘i’, ‘s’, ‘h’, ‘C’, ‘\0’} 等价。

count != 0 && sum/count 短路求值的使用意义

S1E11:if语句

linux:cp A B:拷贝A到B

作业收获:

流程图规范

例:

S1E12:switch语句和分支嵌套

①常量表达式,但不能是浮点型! ②switch不会自动跳出!!

输入 “Y回车”,回车会被第二个scanf读取,所以要有getchar()!!

else始终与最近的if匹配,以下的缩进没有意义,仍与第二个if匹配!!

因此要养成大括号括起来的习惯

作业收获:

空语句应用实例

S1E13:while 和do while

getchar 函数从标准输入流(stdin)中获取下一个字符。返回值是获取的字符的ASCII码。

如下可实现回车前多次运行getchar!!常用的连续读入方法!!!

dowhile的存在意义:简化输密码问题

dowhile最后要有分号!!!

作业收获:

atoi-函数(定义于 <stdlib.h> 头文件中),用于将字符串中的值解析为对应的整型数字。

while (!condition) 取代 while (condition == 0),要去适应。

char 在某些编译系统可能无法存放负数,不要总想着拿char装。

直接拿字符运算,我没想到

这是在做什么?还记得吗

要多想,拿dowhile换whil能不能让代码更健壮!!

S1E14:for语句和循环嵌套

但需要考虑作用域,是局部变量!!

%2d右边开始占位,%-2d左边开始占位

透彻版

作业收获:

第一个对,第二个错(不停输出输入的第一个字符)

没用dowhile的版本,可读性降低了(复习再试着改回去)

scanf的理解及返回值利用,细节繁杂!!

https://www.runoob.com/note/34793

http://c.biancheng.net/view/160.html

S1E15:break和continue

结束本层循环;结束本次循环

但break还绑定switch

作业收获:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值