专业课笔记——(第一章:C、C++基础知识)

目录

一、数据类型

二、不同格式输出的含义

三、运算符优先级

四、计算机基础知识

五、零碎基础知识点


一、数据类型

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长整型输出

cpp 复制代码
1.%0.2d的意思是输出占2位,若位数不够则补0.
2.%2d的意思是输出占2位,若位数不够则补空格
3.printf("%d%d%d*%d\n",a,b,c,d);//跳过第三个输入

2、%o:以八进制数形式输出整数(无符号数)

3、%x:以十六进制数形式输出整数,%X以大写字母输出(无符号数)

cpp 复制代码
1.要是负数的话,化成二进制,弄成补码(取反加1),最后计算

4、%c:用来输出一个字符,如果是数字则是ASCII码值对应的字符

cpp 复制代码
1.%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类型的整数

三、运算符优先级

从上到下运算符优先级依次降低,同一优先级的运算符,运算次序由结合方向所决定。

  1. \]数组下标、**()圆括号**、.对象、-\>指针

  2. /、*、%(3和4是算术运算符)
  3. +、-
  4. <<、>>
  5. >、>=、<、<=(6和7使关系运算符)
  6. ==、!=
  7. &按位与
  8. ^按位异或
  9. |按位或
  10. &&逻辑与
  11. ||逻辑或
  12. ?:条件运算符(三目运算符)
  13. =、/=、*=、%=、+=、-=、<<=、>>=、&=、^=、|=(赋值运算符)
  14. ,逗号运算符 (逗号表达式是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;
}

四、计算机基础知识

  • 两本书上笔记

五、零碎基础知识点

相关推荐
九亿AI算法优化工作室&7 分钟前
SA模拟退火算法优化高斯回归回归预测matlab代码
人工智能·python·算法·随机森林·matlab·数据挖掘·模拟退火算法
UestcXiye8 分钟前
《TCP/IP网络编程》学习笔记 | Chapter 21:异步通知 I/O 模型
c++·计算机网络·ip·tcp
LJTYBQ9 分钟前
轻松认识 SQL 关键字,打开数据库操作大门
数据库·笔记·sql
么耶咩_51510 分钟前
排序复习_代码纯享
数据结构·算法
藍海琴泉1 小时前
蓝桥杯算法精讲:二分查找实战与变种解析
python·算法
大刀爱敲代码2 小时前
基础算法01——二分查找(Binary Search)
java·算法
大小胖虎3 小时前
数据结构——第六章:图
数据结构·笔记··最小生成树·拓扑排序·最短路径
kfepiza6 小时前
netplan是如何操控systemd-networkd的? 笔记250324
linux·网络·笔记·ubuntu
王小小海6 小时前
【笔记分享】nRF54H20 SPI速率范围记录
笔记·单片机·嵌入式硬件·嵌入式
HR Zhou6 小时前
群体智能优化算法-正弦余弦算法(Sine Cosine Algorithm, SCA,含Matlab源代码)
算法·机器学习·matlab·优化·群体智能优化