目录
① sizeof 括号里面的的操作数不一定是数据类型,还可以是表达式
②sizeof 括号里面的的操作数如果是表达式,表达式不计算而是输入对应数据类型的长度
③sizeof 括号里面的的操作数如果是表达式,表达式可以不加括号
1、转义字符的补充说明
\ddd (ddd:代表一个8进制数字)
\ddd (ddd:代表一个8进制数字):表示的是一个八进制数字对应的十进制数字所代表的ASCII码值。
例如我们取ddd为101,那么转义字符‘\101’代表的是多少呢,通过查ASCII码表,我们知道是代表A,那么当我们把这个转义字符进行打印的时候,我们打印出来的就是A。
不妨写个程序检验一下:
运行的结果就是我们想的那样。
\xdd (dd:代表一个16进制数字)
\xdd (dd:代表一个16进制数字):表示的是一个十六进制数字对应的十进制数字所代表的ASCII码值。
例如我们取dd为41,那么转义字符‘\x41’代表的是多少呢,通过查ASCII码表,我们知道是代表A,那么当我们把这个转义字符进行打印的时候,我们打印出来的就是A。
不妨写个程序检验一下:
运行的结果就是我们想的那样。
2、含有占位符的字符串长度计算
在这里,我们先引入一个求字符串的函数:strlen()
作用:字符串的长度
巧记:string+length的缩写
使用:提前定义一个头文件#include< string.h>
不妨写个程序看一下它的作用:
字符串长度,看起来很容易数,“abcde” a、b、c、d、e刚好5个字符,不容易发现长度就是5。但是如果我们加上一些转义字符,事情就变的不是那么简单了。
比如
比如这个题目,对于字符\\141\141\abc\t,他的长度应该采用如下的方法分析:
从左到右逐个的分析\,是一个字符,但是如果加上\,对与\\而言,就变成了一个转义字符。
注意!!!!! 转义字符是一个字符。
\\ 是转义字符,是1个字符
141是3个字符
\141是\bbb 类型的转义字符,是1个字符
\a是转义字符,是1个字符
\b是转义字符,是1个字符
c是1个字符
\t是转义字符,是1个字符
所以长度是9。
编写代码验证一下:
运行的结果就是我们想的那样。
Ps:\0对计算字符长度的影响:strlen只计算\0以前的字符串长度。
对于字符串\\141\141\abc\t的长度上面已经说过,是9,而对于字符串\\141\141\a\0bc\t, b、c、\t不再计算,答案是9-3=6。
编写代码验证一下。
运行的结果就是我们想的那样。
3、语句
C语言中一行一行的代码就叫做语句。C语言代码就是由一条条语句组成的。
语句有以下几个类型:
-
空语句
只有;组成的语句称为空语句,空语句可以用来做循环的循环体。
-
表达式语句
由表达式后面加;构成的语句。
-
函数调用语句
调用函数的语句就是函数调用语句。
-
复合语句
成对括号中的代码就构成一个代码块,也被称为复合语句。
-
控制语句
控制程序结构的执行的语句叫做控制语句,C语言是一种结构化的语言,通过控制语句来执行代码,清晰易懂,执行的过程非常明确。
C语言的结构主要有以下几种
- 顺序结构,程序代码由上到下,一条条执行。
- 选择结构,在执行的过程中,根据条件判断,选择性的执行代码块。
- 循环结构,根据条件,对某些代码块进行反复的执行。
4、注释
在C语言中,注释是用来对代码进行说明和解释的部分,它不会被编译器处理,不会影响程序的执行。在C语言中,有两种常见的注释方式。
单行注释://
多行注释:/* 里面放注释性的语句*/
注意:
①多行注释不能嵌套
看下面的例子
蓝色是一对多行注释,黄色是一对多行注释,嵌套使用,导致错误。
②多行注释可以放在行内
所以下面的使用方法是正确的
③注释在编译时会被替换成一个空格
④双引号里插入注释,注释会失去作用
5、C语言中的基本数据类型
在我们生活当中,数据就有很多类型,比如整数,分数,小数中,而计算机的发明,就是为了解决问题,做点计算,因此把这些数需要放在计算机里面,才能进行计算。 而生活中的数有很多种,所以不难想到,计算机的数据也有很多种类型。
在计算机中,基本数据数据类型有四种:
整数类型
(1)短整型
有符号:
short
short int
signed short
signed short int
无符号:
unsigned short
unsigned short int
(2)整型
有符号:
int
signed int
无符号:
unsigned int
(3)长整型
有符号:
long
long int
signed long
signed long int
无符号
unsigned long
unsigned long int
(3)长长整型
有符号:
long long
long long int
signed long long
signed long long int
无符号:
unsigned long long
unsigned long long int
浮点类型
单精度浮点数 float
双精度浮点数 double
长双精度浮点数 long double
字符类型
有符号
char
signed char
无符号
unsigned char
布尔类型
_Bool
6、C语言中数据类型的长度
在c语言中不同的数据类型有着不同的长度,我们可以使用sizeof 运算符来获取。例如:sizeof(int)会返回int 类型的长度。
注意:
①sizeof()在打印时的占位符是%zu
在C语言中,用于打印sizeof运算符结果的占位符是%zu。这是因为sizeof返回size_t类型的值,而size_t是一个无符号整数类型,因此使用%zu进行格式化输出是合适的。
②sizeof 的单位是字节
常用单位的换算如下
1 字节(byte)= 8 比特(bit)
1 千字节(KB)= 1024 字节
1 兆字节(MB)= 1024 KB
1 吉字节(GB)= 1024 MB
1 太字节(TB)= 1024 GB
Vs2022里的数据类型的长度
7、sizeof 的补充说明
① sizeof 括号里面的的操作数不一定是数据类型,还可以是表达式
②sizeof 括号里面的的操作数如果是表达式,表达式不计算而是输入对应数据类型的长度
③sizeof 括号里面的的操作数如果是表达式,表达式可以不加括号
④不同类型的表达式在计算的时候,遵循木桶效应
比如把长整型计算的结果赋值给短整型,则sizeof输出短整型的长度