c语言zixue
该文主要是记录我学习中遇到的一些重点、易出问题的内容
教材p16.17
先从一个简单的例子开始吧
#include <stdio.h> //编译预处理命令
int main() //程序的主函数
{
printf("To C"); //输出语句
return 0; //返回语句
}
#include <stdio.h>是编译预处理命令,功能是包含标准输入输出头文件 预处理命令必须以#开头
int main()是主函数的函数首部,每个c程序有且只有一个主函数
左花括号表示函数起始,右花括号表示函数结束
第二章知识
标识符:只能含有字母,数字和下划线,且数字不能做第一个字符
格式说明符:
格式:
%[标志][宽度修饰符][.精度][长度]格式字符
其中的方括号是可选项,格式字符是必选项
%---表示格式说明符开始
标志---+,-, # ,空格
+ ---输出结果右对齐,左边补齐空位,正负数都输出符号
- ---输出结果左对齐,右边补齐空位,负数输出符号,正数不输出正号
# ---在输出o类八进制整数时加前导0,在输出x类十六进制的整数时前导0x或是0X,其余无影响
空格 ---输出值为正数时冠以空格,输出值为负数时冠以负号
输入函数scanf
#include <stdio.h>
int main()
{
int a,b,sum;
printf("请输入两个整数:");
scanf("%d,%d", &a, &b);
sum=a+b;
printf("求和:%d+%d=%d\n",a, b,sum);
return 0;
}
此时中文输入,可以看到出现了问题,但是换成英文输入
经过查询,要了解到scanf函数的输入时是区分中英文输入的
字符的输入:
- getchar()函数直接获取字符,但是需要输入换行符才获取并回显
- getch()函数直接获取,即不需输入换行符就直接读取,但是不回显
- getche()函数直接获取字符,不需输入换行符直接获取并且直接回显,即输入将会显示两个所输入的字符,其中第一个是输入的,第二个是输出回显的
- getch()函数和getche()函数需要头文件conio.h,否则将会报错
单字符------用单引号(定界符)引用
字符串------用双引号(定界符)引用
表达式值的类型,c语言会自动转换,比如1/2时,由于1,2都是整数,原得到的计算值应该时0.5,但是由于自动转换就会保存为整数,导致得到的时0
自动类型转换:1.同类型的运算结果类型不变
2.混合运算中,运算结果取高一级的数据类型
强制类型转换:利用转换值类型运算符(),将运算对象的类型转换为指定类型
(类型名)运算对象 eg. (int)3.1415----->3 (float)3.1415---->3.141500
自动转换的解决办法——将其中一个的类型转换为更高的类型
eg.height=1/2a*t*t(这里的结果无论a,t多大都一定为0),为了改变这个情况,我们就将1
或者2改为1.0或者2.0
第三章
关系运算符
关系运算符==与赋值运算符=的比较
== | = |
---|---|
比较运算符,比较左右两边是否相等 | 赋值运算符,将右侧的值赋给左侧 |
int a=1,b=3,c=4
| int a=1,b=3,c;
|
不可以写'A'<=x<='Z',虽然等价于'A'<=x以及x<='Z',但是c语言中运行错误,因为不能如python语言一样,要改为'A'<=x&&x<='Z'[c语言不支持连续判断大小,只能用&&连接]
逻辑运算符
运算符 | 名称 |
---|---|
! | 非 |
&& | 与 |
|| | 或 |
其中与和或运算符可能存在“短路的情况”:
- 与运算符&&:当左侧为假时,右侧就不用再次计算了,因为一假为假
- 或运算符||:当左侧为真时,右侧就不计算了,因为一真为真
连续的关系判断尽量用逻辑运算符连接