C Primer Plus学习笔记(1)

1.C语言概述

  1. ’//’ 这种注释只能写成一行
  2. 最好写成int main(void)
  3. 报错的位置比真正的错误位置滞后一行

2.数据和C

  1. int dogs, cats = 94; (有效,但是这种格式很糟糕!)
  2. 如果要在八进制和十六进制前显示0和0x前缀,要分别在转换说明中加入 #
  3. 虽然C允许使用大写或小写的常量后缀,但是在转换说明中只能使用小写
  4. char grade = 65; (对于ASCII,这样做没问题,但这是一种不好的编程风格)

3.转义序列

转义序列表

4.字符串的格式化输入/输出

  1. 由于数组的末尾有个‘/0’的空字符,故数组的容量必须至少比待存储字符串中的字符数多1
  2. 字符串常量 “x” 和字符常量 ’x’ 的区别:
    a: ‘x’ 是基本类型(char);而 “x” 是派生类型(char数组)
    b: "x"实际上由两个字符组成:‘x’ 和空字符 ‘\0’
  3. printf() 可以在参数之间断为两行,但是不要在双引号中的字符串中间断
  4. sizeof()strlen() 的区别:sizeof() 把字符串末尾不可见的空字符也计算在内
  5. 大写常量可提高程序的可读性

5.printf()函数

(1)printf()转换说明及其打印的输出结果显示

%a(A) 浮点数、十六进制和p记数法
%c 单个字符
%d(i) 有符号十进制整数
%e(E) 浮点数、e记数法
%f 浮点数、十进制记数法
%g(G) 根据值的不同,自动选择精度(%f,%e)
%o 无符号八进制整数
%p 指针
%s 字符串
%u 无符号十进制整数
%x(X) 无符号十六进制整数
%% 打印一个%

(2)printf()中的标记

在这里插入图片描述

6.scanf()函数

  1. scanf()字符串读入字符数组中,不要使用&
  2. 只有scanf("%c", value); 会读取每个字符,包括空白
  3. “%le”, “%lf” 和 “%lg” 表明把对应的值存储为double类型;“%Le”, “%Lf” 和 "%Lg"则是把对应的值存储为long double类型
  4. scanf("%c", &ch); 从输入的第一个字符开始读取;scanf(" %c", &ch); 则从第一个非空白字符开始读取

7.printf()和scanf()的*修饰符

  1. printf("%*d", width, value); 使用 *的话,后面要跟一个表示字宽的参数width
  2. scanf("%*d %d", &n); 跳过一个整数,把第2个整数拷贝给n

猜你喜欢

转载自blog.csdn.net/weixin_42916038/article/details/84786538
今日推荐