C语言学习笔记

学习笔记

第一章

1.3C 的应用范围

小型计算机(UNIX)主流语言 ->PC ->大型机
开发文字处理程序、电子表格、编译器、其他产品

1.6语言标准

  • 1.1989 ANSI\ISO C 标准
    语言标准:定义C语言和C标准库
  • 2.1994 C99标准
    目标:支持国际化编程;调整现有实践致力于解决明显缺陷;提高C的适应性
  • 3.2007 C11

1.7使用C 的7个步骤

  • 1定义程序目标
  • 2设计程序
  • 3编写代码
  • 4编译
  • 5运行程序
  • 6测试和调试程序
  • 7维护和修该程序

1.86 IDE

C Windows下的集成开发环境(IDE) Microsoft Visual Studio

  • 保留运行窗口:在程序的最后(return 0之前)加上getchar() (类似py里的input())

第二章 C 语言概述

C语言学习笔记

代码举例
C语言学习笔记

2.2.2程序细节

1. #include指令和头文件

#include<stdio.h>

  • #include是一条C预处理指令
  • stdio.h是头文件,该文件里包含供编译器使用的输入和输出函数。

2. main()函数

int main(void);

  • C 程序一定从main()函数开始执行,()用于识别main为一个函数。
  • int是main()函数的返回类型(整数)。
  • ()中包含传入函数的信息,viod为空白的,所以该例中没传递任何信息

3.注释

/* 注释 */

    1. /* 注释内容 */
    1. /* 注释内容
      可分成两行。 */
    1. /*
      注释
      */
    1. // 注释
      (双斜杠用于开头,只能注释该行内容,到行尾注释结束。)

4.花括号,函数体,块

{

}

{}标志标记函数体的开始和结束

5.声明

int num;

int 是C语言的关键字,一种数据类型

num 是一个标识符,也就是变量,函数,其他实体的名称

首次使用变量前要先声明

  • 变量命名标准:可用小写字母、大写字母、数字、下划线(_)来命名。名称的第一个字符必须是 字母或者下划线,不能是数字
  • 避免使用一个或两个下划线开始的变量名,会与C的标识符重复
  • C区分大小写

6.赋值

num = 1;

把一个值(1)赋给变量(num),该语句以分号结尾。

7.printf()函数

printf(“I am a simple”);
printf(“computer.\n”);
printf(“My favorite number is %d because it is first .\n”,num);

printf函数查看双引号中的内容,并将其打印在屏幕上

%d 相当于一个占位符,%用于提醒程序,在该处打印一个变量;d表明把变量作为十进制整数打印。

转义序列(如\n):用于代表难以表示或无法输入的字符

符号 含义
\n 换行符(Enter键)
\t Tab键
\b 退格键(Backspace键)

8.return语句

return 0;

有返回值的C函数要有return语句

2.4提高程序可读性

  • 选择有意义的函数名
  • 写注释
  • 用空行分隔概念上的多个部分
  • 每条语句占一行
    语法错误:报错位置比真正的错误位置滞后一行。

第3章 数据和C

C语言学习笔记
C语言学习笔记

3.3.数据:数据类型关键字

关键字 含义
int 基本的整数类型
long、short、unsigned、signed 提供基本整数类型的变式
char 指定字母和其他字符(也可表示较小的整数)
float、double、long double 带小数点的数浮点数
_Bool 布尔值(True/False)
_Complex 复数
_Imaginary 虚数

3.4C语言基本数据类型

3.4.1int类型

1.声明–>2.初始化变量–>3.打印int值

  • 1声明之后可通过赋值语句给变量赋值,也可通过函数(scanf())获得值
  • 2初始化变量相当于声明+赋值 (int hogs=21;)
  • 3在printf()函数中,每个%d都与待打印的interesting值匹配
进制

不同进制在计算机内存储方式相同,都以二进制进行编码

  • 以八进制显示数字 %o
  • 以十六进制显示数字 %x
  • 若要显示前缀(0,0x,0X)需使用%#o,%#x, %#X

3.4.2其他整数类型

类型 含义 转换说明 占位
short 常用于较小的数值场合以节省空间 %hd 至少16位
long int \long 占用空间大,适用于较大数值场合 %ld 至少32位
long long(int) >或=最大的long整数类型 至少64位
unsigned int\unsigned 用于非负值的场合,符号位用来表示另一个二进制的数 %u
signed 强调使用有符号类型的意图

3.4.3使用字符:char类型

  • 1 声明char类型变量:char itable, latan;
  • 2 字符常量和初始化:broiled=‘T’(必须是单引号)
  • 打印字符 %c

3.4.4布尔类型

一种无符号类型
1表示true,0表示false

实浮点类型

  • float:系统的基本浮点类型,可精确表示至少六位有效数字
  • double:范围更大,有效数字至少10位,能表示更大的指数
  • long double:范围比double更大,更多的有效数字,更大的指数

复数和虚数浮点数

复数的实部和虚部都基于实浮点数类型来构成

3.4.9类型大小

sizeof()

sizeof是C的内置运算符,以字节为单位给出指定类型的大小

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

C语言学习笔记

C语言学习笔记

4.2.1char类型数组和空字符

  • 符串存储在char类型数组,
    数组是一系列同类型的项或元素

char name[30]

该语句声明了一个名为name,有30个char类型的数组。

  • 要确保有足够多的元素来储存整个字符串(包括空字符)
  • C中的字符串一定以空字符(null字符,符号、0)结束,空字符的ASCII码是0
使用字符串

字符串常量是用双引号括起来的字符序列

“abc”

4.2.3 strlen()函数

给出字符串中的字符长度(包括空格和标点符号)

常量

  • 一般用大写表示符号常量(NAME,TAXRATE)
  • 在名称前带c_或k_前缀来表示常量(eg:c_level)
  • 符号常量的命名规则同变量
C预处理器

C预处理器为预处理指令(#开头)查找源代码程序,并在编译开始前处理它们。
处理器根据#include指令把另一个文件的内容添加到该指令所在位置
#define指令可以创建代表常量的符号
const限定符:创建不能修改的变量

4.4printf()和scanf()

printf()函数

printf()函数打印数据的指令要与待打印数据类型相匹配

  • 转换说明和对应输出类型

C语言学习笔记

  • 函数格式
    printf(格式化字符串,待打印项1,待打印项2,…);

4.4.3printf()的转换说明修饰符

C语言学习笔记
C语言学习笔记

4.4.5scanf()

一种输入函数,可读取不同格式的数据

  • 如果用scanf读取基本变量类型的值,在变量名前加&
  • 如果用scanf把字符串读入字符数组中,不要用&

转换说明C语言学习笔记
scanf修饰符
C语言学习笔记

第5章运算符,表达式和语句

基本运算符:

  • 赋值运算符 =
  • 加法运算符 +
  • 减法运算符 -
  • 符号运算符 -和+
  • 乘法运算符 *
  • 除法运算符 /

优先级
C语言学习笔记
其他运算符

  • sizeof运算符和size_t类型
  • 求模运算符 %
  • 递增运算符 ++
  • 递减运算符 –

优先级
递增递减运算符有很高的结合优先级,只有()的优先级比它们高