目录
一、数据类型
1、C语言中的最简单的数据类型:
- 整数类型、字符类型、浮点类型(C语言没有逻辑型(bool)它是C++特有的,而c语言它是通过0、1表示实现的)
- 构造类型:枚举型、数组类型、结构体类型、共用体类型、类类型(C++特有)
2、计算字符串长度:
- strlen():c语言中的函数
- length():c++中的函数
- size():是一个运算符不是函数
3、转义字符:
- 数字0---9表示:48--57
- 大写字母(A-Z):65---90
- 小写字母(a-z):97---122
cpp以下是C语言中常用的转义字符的完整列表: \\:反斜杠 \':单引号 \":双引号 \?:问号 \a:警报(响铃) \b:退格 \f:换页 \n:换行 \r:回车 \t:制表符(水平制表) \v:垂直制表 \0:空字符 \ooo:八进制表示的字符(其中 ooo 是一个八进制数,范围为 0-377) \xhh:十六进制表示的字符(其中 hh 是一个十六进制数,范围为 00-FF)
4、整型常量:包括正整数、负整数和0
- 十进制整数:无前缀(0---9)
- 八进制整数:前缀0(只包含0---7)
- 十六进制整数:前缀0x或0X(0---9,a---f)
5、实型常量:又称实数或浮点型
- 小数形式:由两部分组成数字和小数点
- 指数形式:科学计数法算出来的形式(字母e或E之前必须要有数字,且e或E后面的指数必须为整数)(注意:在字母e或E的前后以及数字之间不得插入空格)(例:0.000056 ------5.6e-5、560000 ------5 .6e5、-0.0023-------2.3e-3**)**
二、不同格式输出的含义
1、%d:整型输出,%ld长整型输出
cpp1.%0.2d的意思是输出占2位,若位数不够则补0. 2.%2d的意思是输出占2位,若位数不够则补空格 3.printf("%d%d%d*%d\n",a,b,c,d);//跳过第三个输入
2、%o:以八进制数形式输出整数(无符号数)
3、%x:以十六进制数形式输出整数,%X以大写字母输出(无符号数)
cpp1.要是负数的话,化成二进制,弄成补码(取反加1),最后计算
4、%c:用来输出一个字符,如果是数字则是ASCII码值对应的字符
cpp1.%c以回车结束 2. "":回车计入内,不计入'\n',故"hello!"在内存中占7个字节 3.转义字符在数字之前表示八进制('/72'==58) '/72':在内存中占一个字节 "/72":在内存中占二个字节
5、%s:用来输出一个字符串
6、%f:用来输出实数,以小数形式输出
7、%u:以十进制数输出unsigned型数据(无符号数)
8、%e:用科学计数法算出来的形式
cpp#include<stdio.h> int main() { float a=123.456; float b=-123.456; float c=0.123456; printf("%e\n",a);//1.234560e+02 printf("%e\n",b);//-1.234560e+02 printf("%e\n",c);//1.234560e-01 return 0; }
9、%g:根据大小自动选f格式或e格式,且不输出无意义的零
10、%p:专门用来打印地址
11、%%:打印出来是%,相当于两个%打印出来才是一个%
12、%hd:打印以十进制显示short类型的整数
三、运算符优先级
从上到下运算符优先级依次降低,同一优先级的运算符,运算次序由结合方向所决定。
\]数组下标、**()圆括号**、.对象、-\>指针
- /、*、%(3和4是算术运算符)
- +、-
- <<、>>
- >、>=、<、<=(6和7使关系运算符)
- ==、!=
- &按位与
- ^按位异或
- |按位或
- &&逻辑与
- ||逻辑或
- ?:条件运算符(三目运算符)
- =、/=、*=、%=、+=、-=、<<=、>>=、&=、^=、|=(赋值运算符)
- ,逗号运算符 (逗号表达式是C语言优先级最低的运算符)****(逗号表达式是左结合,整个逗号表达式的值为逗号表达式中最后一个表达式的值)
知识点小结:
简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
**逻辑或运算符(||),**先对左边的表达式进行求值,若为真则不再执行后面的表达式
**逻辑或运算符(&&),**先对左边的表达式进行求值,若为假则不再执行后面的表达式
++x:使用之前先进行加减。
**x++:**使用之后进行加减。(一条语句,只要没有使用哪怕到最后,他仍然不加)
()括号运算符里面进行运算,结果为0或1
1、题目加深印象(类型一)①t=++x||++y&&++z;(x=2,y=1,z=1,t=1)(初始x、y、z、t都为1)
②t=(++x||++y)&&++z;(x=2,y=1,z=2,t=1)(初始x、y、z、t都为1)
③t=++x&&++y||++z;(x=1,y=1,z=0,t=1)(初始x、y、z、t都为0)
④t=++x&&++y&&++z;(x=1,y=1,z=1,t=1)(初始x、y、z、t都为0)
⑤t=++x&&++y&&++z;(x=0,y=-1,z=-1,t=0)(初始x、y、z、t都为-1)
⑥t=++x&&++y||++z;(x=0,y=-1,z=0,t=0)(初始x、y、z、t都为-1)
⑦t=++x||++y&&++z;(x=0,y=0,z=-1,t=0)(初始x、y、z、t都为-1)
2、题目加深印象(类型二)
- 1.逗号表达式a=2*6,a*3,a+5的值为:17
- 2.int x=5,y=8,z;z=(x++,++y,x+y);求z=15
- (x++)+y这里先把x的值与y的值相加,随后x再自增加1也就是z=x+y;x=x+1;
3、题目加深印象(类型三)
cpp#include<stdio.h> int main(){ int a = 10; printf("%d %d %d %d %d\n", a++, ++a, --a, a--, a); //9 10 10 10 10 //前增减,运算进行,但不打印最后一块打印 return 0; }
四、计算机基础知识
- 两本书上笔记