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 语言概述
代码举例
2.2.2程序细节
1. #include指令和头文件
#include<stdio.h>
- #include是一条C预处理指令。
- stdio.h是头文件,该文件里包含供编译器使用的输入和输出函数。
2. main()函数
int main(void);
- C 程序一定从main()函数开始执行,()用于识别main为一个函数。
- int是main()函数的返回类型(整数)。
- ()中包含传入函数的信息,viod为空白的,所以该例中没传递任何信息
3.注释
/* 注释 */
-
- /* 注释内容 */
-
- /* 注释内容
可分成两行。 */
- /* 注释内容
-
- /*
注释
*/
- /*
-
- // 注释
(双斜杠用于开头,只能注释该行内容,到行尾注释结束。)
- // 注释
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
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 章 字符串和格式化输入输出
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()函数打印数据的指令要与待打印数据类型相匹配
- 转换说明和对应输出类型
- 函数格式
printf(格式化字符串,待打印项1,待打印项2,…);
4.4.3printf()的转换说明修饰符
4.4.5scanf()
一种输入函数,可读取不同格式的数据
- 如果用scanf读取基本变量类型的值,在变量名前加&
- 如果用scanf把字符串读入字符数组中,不要用&
转换说明
scanf修饰符
第5章运算符,表达式和语句
基本运算符:
- 赋值运算符 =
- 加法运算符 +
- 减法运算符 -
- 符号运算符 -和+
- 乘法运算符 *
- 除法运算符 /
优先级
其他运算符
- sizeof运算符和size_t类型
- 求模运算符 %
- 递增运算符 ++
- 递减运算符 –
优先级
递增递减运算符有很高的结合优先级,只有()的优先级比它们高