Loading

《C Primer Plus》第六版笔记--4~6章

虽然匆匆忙忙,但还是要做笔记,虽然大概都知道......
挑一些容易忘记的地方

第四章 字符串和格式化输入/输出

  1. C语言没有专门储存字符串的变量类型,字符串通常被存储在char类型的数组中,字符串在末尾会有一个空字符\0,一种非打印字符,ASCⅡ码是0。C语言中字符串一定以空字符结束,这意味着数组的容量至少比存储字符串的字符数多1。通常可以用'\0'字符来作为遍历字符串的结束条件。
  2. strlen()函数可以给出字符串的字符长度,包含在string.h的头文件内
    1. sizeof与strlen的区别:sizeof会算出数组占用的总储存空间,strlen会算出数组内用来储存字符串的储存空间数
  3. #define通常用于设定常量,用法:#define MONEY 100意思是MONEY就是一个常量,数值为100,没有分号和'='号。C90标准新增了个const,用于限定一个变量为只读,用法:const int Pen = 1.5,用法较#define更为灵活
  4. printf函数的转换说明与各自输出类型
转换说明及其打印的输出结果
转换说明 输出
%a 浮点数、十六进制数和p计数法(C99/C11)
%A 浮点数、十六进制数和p计数法(C99/C11)
%c 单个字符
%d 有符号十进制整数
%e 浮点数,e计数法
%E 浮点数,e计数法
%f 浮点数,十进制计数法
%g 根据值的不同,自动选择%f或%e。%e格式用于指数小于-4或者大于等于精度值
%G 根据值的不同,自动选择%f或%e。%e格式用于指数小于-4或者大于等于精度值
%i 有符号十进制整数(与%d相同)
%o 无符号八进制整数
%p 指针
%s 字符串
%u 无符号十进制整数
%x 无符号十六进制整数,采用十六进制数of
%X 无符号十六进制整数,采用十六进制数oF
%% 打印一个百分号

第五章 运算符、表达式和语句

  1. while语句在使用中,首次到达while循环时,会先去判断括号内条件的情况,括号中内容为真即可开始循环的语句
  2. 运算符优先级:
    运算符优先级(从高到低)
运算符 结合律
() 从左往右
+ - (一元) 从右往左
* / 从左往右
+ - (二元) 从左往右
= 从右往左
  1. ++i比i++效率更高
  2. 形参与实参
    形参:变量
    实参:函数调用提供的值
   #include <stdio.h>
   void pound(int n);// ANSI函数原型
   int main()
   {
      int times = 5;
      char ch = '!';//ASCII码是33
      float f = 6.0;

      pound(times);
      pound(ch);
      pound(f);

      getchar();

      return 0;
   }

   void pound(int n)
   {
      while (n-- > 0)
         printf("#");
      printf("\n");
   }

第六章 C控制语句:循环

  1. _Bool使用
    _Bool类型的变量只能储存1(真)和0(假)
#include <stdio.h>
int main(void)
{
	long num;
	long sum = 0L;
	_Bool input_is_good;

	printf("Please enter an integer to be summed");
	printf("(q to quit): ");
	input_is_good = (scanf_s("%ld", &num) == 1);

	while (input_is_good)
	{
		sum += num;
		printf("Please enter next integer (q to quit): ");
		input_is_good = (scanf_s("%ld", &num) == 1);
	}
	printf("Those integers sum to %ld.\n", sum);

	getchar();
	getchar();
	getchar();

	return 0;
}

C99标准提供了stdbool.h的头文件,可以用bool作为_Bool的别名

OK,这里就是4~6章的大概的重难点啦,祝大家双十一快乐:)

posted @ 2021-04-22 13:46  Dragonet-Z  阅读(102)  评论(0编辑  收藏  举报