文章目录
- 2.7.5 指针引用有一疑问
第2章 C/C++快速入门
2.1 基本数据类型
2.1.1 变量的定义
变量类型 变量名;
变量类型 变量名 = 初值;
2.1.2 变量类型
1. 整型 int
- 输出格式:%d
2. 浮点型 float、double
-
输出格式:%f
-
“ %.1f ”是指保留一位小数输出
-
对浮点型数据来说,不要使用float,碰到浮点型的数据都应该用double来存储。
3. 字符型 char
-
输出格式:%c
-
小写字母比大写字母的ASCII码值大32
4. 字符串型 string
- 输出格式:%s
- 字符串常量可以作为初值赋给字符数组,并使用%s的格式输出
5. 布尔型 bool
2.1.3 强制类型转换
- 格式:
(新类型名)变量名
2.1.4 符号常量和const常量
- 符号常量(宏定义)格式
#define 标识符 常量
#define pi 3.14
- 注意:末尾不加分号
- const定义常量格式
const 数据类型 变量名 = 常量;
const double pi = 3.14;
- (不推荐使用) define 定义任何语句或片段 格式
#define 标识符 任何语句或片段
#define ADD(a, b) ((a)+(b))
- 宏定义的陷阱:它把替换的部分直接原封不动替换进去
- 不要使用宏定义来做除了定义常量以外的事情,除非给能加的地方都加上括号
2.1.5 运算符
1. 算术运算符
- ++i 与 i++
- ++i 是先将i加1再使用i
- i++是先使用i再加1
2.2 顺序结构
2.2.1 赋值表达式
2.2.2 使用 scanf 和 printf 输入/输出
1. scanf 函数的使用
-
scanf 是 输入函数
-
格式:
scanf("格式控制", 变量地址);
-
eg: scanf("%d", &n);
将输入的一个整数存放在 int 型变量 n 中 -
格式符 数据类型 %lld long long %f float %lf double %s 字符串(char 数组) -
scanf("%s", str);
- 字符数组前面不使用 & 取地址运算符。
- 数组名称本身就代表了这个数组第一个元素的地址,所以不需要再加取地址运算符。
- 在 scanf 中,除了 char 数组整个输入的情况不加 & 之外,其他变量类型都需要加 &
-
除了
%c
以外,scanf
对其他格式符(如%d
)的输入是以空白符(即空格、Tab
)为结束判断标志的 -
字符数组使用
%s
读入的时候以空格和换行作为读入结束的标志 -
scanf
的%c
格式是可以读入空格和换行的
2. printf 函数的使用
-
printf
的格式printf("格式控制", 变量名称);
-
对于
double
类型的数据,其输出格式变成了%f
,而在scanf
中却是%lf
-
三种实用输出格式
-
%md
-
%md
可以使不足m
位的int
型变量以m
位进行右对齐输出,其中高位用空格补齐;如果变量本身超过m
位,则保持原样。 -
代码示例
#include "stdio.h" int main(){ int a = 123, b = 12345, c = 123456; printf("%5d\n", a); printf("%5d\n", b); printf("%5d\n", c); } // 输出结果 123 12345 123456
-
-
%0md
%0md
只是在%md
中间多加了 0。和%md
的唯一不同点在于,当变量不足m
位时,将在前面补足足够数量的 0 而不是空格。- 这种格式在某些题中非常适用。
-
%.mf
%.mf
可以让浮点数保留m
位小数输出,这个“保留”使用的是精度的“四舍六入五成双”规则(具体细节不必掌握)。- 四舍五入使用
round
函数
-
2.2.3 使用 getchar
和 putchar
输入/输出字符
getchar
用来输入单个字符,putchar
用来输出单个字符,在某些scanf
函数使用不便的场合可以使用getchar
来输入字符。
2.2.4 注释
2.2.5 typedef
-
typedef
用于给复杂的数据类型起别名,这样在使用中就可以使用别名来代替原来的写法。 -
代码
#include "stdio.h" // 使用 LL 代替 long long,以避免因在程序中出现大量的 long long 而降低编码效率 typedef long long LL; int main(){ LL a = 123456789012345, b = 1234567890098765; printf("%lld", a + b); } // 结果 1358024679111110
2.2.6 常用的 math
函数
- 头文件
math.h
1. fabs(double x)
- 该函数用于对
double
型变量取绝对值
2. floor(double x) 和 ceil(double x)
-
floor
函数用于double
型变量的向下取整,返回的类型为double
型 -
ceil
函数用于double
型变量的向上取整,返回的类型为double
型 -
代码
#include "stdio.h" #include "math.h" int main(){ double a = 5.2; double b = -5.2; printf("%f\n", floor(a)); // 向下取整 printf("%f", ceil(a)); // 向上取整 printf("\n%f", floor(b)); printf("\n%f", ceil(b)); } // 结果 5.000000 6.000000 -6.000000 -5.000000
3. pow(double r, double p)
- 该函数用于返回 r p r^p