IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言笔记 -> 正文阅读

[C++知识库]C语言笔记

数据类型:

C是有类型的语言,C语言的变量,必须在使用前定义,并且确定类型
C以后的语言向两个方向发展
C++/Java更强调类型,对类型的检查更严格
JavaScript、?Python、?PHP不看重类型,甚至不需要事先定义

C语言的类型包括:

整数,char、?short、?int、?long、?long?long,浮点数,float、?double、?long?double,逻辑,bool,指针以及自定义类型。

类型有何不同

类型名称:?int、?long、double

输入输出时的格式化:?%d、%ld、%|f

所表达的数的范围:?char?<?short?<?int?<?float?<?<double

内存中所占据的大小:?1个字节到16个字节内存中的表达形式:二进制数(补码)、编码

sizeof是一个运算符,给出某个类型或变量在内存中所占据的字节数,sizeof是静态运算符,它的结果在编译时刻就决定了不要在sizeof的括号里做运算,这些运算不会做的。?

C语言数据类型之整数数据类型:

整数类型:

char:?1字节(8比特)
short:?2字节.
int:?取决于编译器(CPU)?,通常的意义是“1个字”

long:?取决于编译器(CPU)?,通常的意义是“1个字”

long?long:?8字节

整数的范围:

char:?13T:?-128?~?127
short:?237:?-32768?~?32767
int:?取决于编译器(CPU),通常的意义是“1个字”
long:?4字节
long?long:?8字节

unsigned:

如果一个字面量常数想要表达自己是unsigned,可以在后面加u或U,用或L表示long(long)
?*unsigned的初衷并非扩展数能表达的范围,而是为了做纯二进制运算,主要是为了移位

整数的输入输出:

只有两种形式:?int或long?long

%d:?int
%u:?unsigned
%ld:?long?long
%lu:?unsigned?long?long

8进制和16进制:

一个以0开始的数字字面量是8进制,一个以0x开始的数字字面量是16进制●.?%o用于8进制,%x用于16进制,8进制和16进制只是如何把数字表达为字符串,与内部如何表达数字无关。16进制很适合表达二进制数据,因为4位二进制正好是一个16进制位,8进制的一位数字正好表达3位二进制,因为早期计算机的字长是12的倍数,而非8。
整数类型的选择:

为了准确表达内存,做底层程序的需要,所以整数有很多种

在选择时没有特殊需要,就选择int,
现在的CPU的字长普遍是32位或64位,一次内存读写就是一个int,-次计算也是一-个int,选择更短的类型不会更快,甚至可能更慢,现代的编译器-?-般会设计内存对齐,所以更短的类型实际在内存中有可能也占据一个int的大小(虽然sizeof告?诉你更小),unsigned与否只是输出的不同,内部计算是--样的。

浮点类型:

浮点类型
类型字长范围有效数字
float32*(1.20x?10-38~3.40x1038),0,zinf,nan7
double64t(2.2x10-308~?1.79x?10308),O,tinf,nan15

浮点的输入输出

类型scanfprintf
float%f%f,%e
double%lf%f,%e

?输出精度:

在%和f之间加上.n可以指定输出小数点后几位,这样的输出是做4舍5入的

printf("%.3f\n",?-0.0049); print("%?.30f\n",?-0.0049);print("%?.3f\n",?-0.00049)

注意:带小数点的字面量是double而非float,float需要用f或F后缀来表明身份。

选择浮点类型:

如果没有特殊需要,只使用double
现代CPU能直接对double做硬件运算,性能不会比float差,在64位的机器上,数据存储的速度也不比float慢
字符

字符类型:

char是一?种整数,也是一种特殊的类型:字符。这是因为:用单引号表示的字符字面量:?'a','1',"也是一个字符,printf和scanf里?用%c来输入输出字符
字符的输入输出

如何输入'1?'这个字符给char?c?

scanf("%C",?&c);-?->?1,scanf("%d",?&i);?c=i;-?->49
'1'的ASCII编码是49,所以当c==49时,它代表'1'printf("%i?%c\n",?C,C?);
一个49各自表述!

逃逸字符:

用来表达无法印出来的控制字符或特殊字符,它由一个反斜杠“\”开头,后面跟上另一个字符,这两个字符合起来,组成了一个字符。

逃逸字符
字符?意义字符意义
\b回退一格\"双引号
\t到下一表格位\'单引号
\n换行\\反斜杠本身
\r回车

制表位:

每行的固定位置
一个\t使得输出从下一个制表位开始●用\t才能使得上下两行对齐

自动类型转换:

当运算符的两边出现不一致的类型时,会自动转换成较大的类型

大的意思是能表达的数的范围更大
char->?short->?int->?long?->?long?long●int-?->?float-?->?double?
对于printf,任何小于int的类型会被转换成int;?float会被转换成double,但是scanf不会,要输入short,需要%hd。

强制类型转换:

要把一个量强制转换成另一个类型(通常是较小的类型),需要:(类型)值


逻辑类型:

bool需要头文件#include?<stdbool.h>,之后就可以使用boo|和true、false
?

逻辑运算:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 逻辑运算是对逻辑量进行的运算,结果只有0或|
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 逻辑量是关系运算或逻辑运算的结果
?

运算符描述示例结果
逻辑非!a

如果a是true结果就是false,

如果a是false结果就是true

&&逻辑与a&&b

如果a和b都是true,

结果就是true;否则就是false

||逻辑或a||b

如果a和b有一一个是true,?

结果为true;两个都是false,结果为false

逻辑运算符的优先级:!>&&>||

逗号运算符:

逗号用来连接两个表达式,并以其右边的表达式的值作为它的结果。逗号的优先级是所有的运算符中最低的,所以它两边的表达式会先计算;逗号的组合关系是自左向右,所以左边的表达式会先计算,而右边的表达式的值就留下来作为逗号运算的结果。
?

大小写转换:

字母在ASCII表中是顺序排列的
大写字母和小写字母是分开排列的,并不在一-起

'a'-'A'可以得到两段之间的距离,于是a+'a'-A”可以把一个大写字母变成小写字母,而a+'A'-'a'可以把一?-个小写字母变成大写字母

对循环知识的补充:

? ? ? ?for循环像一个计数循环:设定一一个计数器,初始化它,然后在计数器到达某值之前,重复执行循环体,而每执行一轮循环,计数器值以一-定步进进行调整,比如加或者减1。

? ? ? for?(初始动作;条件;每轮的动作){

},for中的每一个表达式都是可以省略的for?(;条件;)?===while(条件)。

break?与 continue
break:跳出循环
continue:跳过循环这一轮剩下的语句进入下一轮。

break和continue只能对它所在的那层循环做。


循环的选择建议:

如果有固定次数,用for;
如果必须执行一-次,用do_?while●其他情况用while。、


对之前知识的补充:
条件运算符是C中唯一-的三?目运算符
表达式1?表达式2:表达式3
判断表达式1是否成立,如果成立整个式子的值为表达式2的值,如果表达式1不成立,整个式子的值为表达式3的值

自增自减运算符前置或后置对操作数本身没有任何影响但:如果自增自减前置则先自增自减后参与运算,反之如果后置则先参与运算再自增自减。

如果一个变量发生了自增自减运算,或者出现在赋值符号的左侧,则会引起其值的改变

所有出现在赋值符号右侧的变量必须是已经赋值的变量所有能够进行自增自减运算的变量必须是已经赋值的变量

格式输入函数:scanf格式输出函数:printf

字符输入函数:getchar字符输出函数:putchar

字符串输入函数:gets字符串输出函数:puts

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-25 23:05:06  更:2022-09-25 23:07:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:45:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码