第一章 概述
1.1什么是程序
为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的合集。
1.4C语言的特点
- 代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,也适用于多种机型。
- 使允许直接访问物理地址,对硬件直接操作。
- C语言是一个有结构化程序设计、具有变量作用域以及递归功能的过程式语言。
- C语言传递参数可以是值传递,也可以是指针传递。
- C语言中没有对象,不同的变量类型可以用结构体组合在一起。
- 预编译处理,生成目标代码质量高,程序执行效率高。
1.6C程序运行机制
- 编辑:hello.C 文件就是源代码。
- 编译:将hello.c程序翻译成目标文件hello.obj //在计算机底层执行。
- 链接:将目标文件hello.obj+库文件 生成可执行文件 .exe //在计算机底层执行。
- 运行:执行.exe文件得到运行结果。
1.8C程序开发注意事项
1)C程序源文件以“c”为扩展名。
2)C程序的执行入口时main()函数。
3)C语言严格区分大小写。
4)C程序由一条条语句构成,每个语句以“;”结束。
1.9常用的转义字符
\t:一个制表位,实现对齐功能
\n:换行符
\\:\
\":"
\':'
\r:一个回车
//:单行注释文字
/* */:块注释。多行注释。
第二章 变量
2.1.1 变量是程序的基本组成单位
2.2 变量的介绍
2.2.1 概念
变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)。
2.2.2 变量使用的基本步骤
声明变量:int num;
赋值:num = 60;
使用:printf("num = %d",num);
一步到位:int num2 = 99;
2.4 变量使用注意事项
- 变量表示内存中的一个存储区域(不同的数据类型占用的空间大小不一样)
- 该区域有自己的名称和类型
- 变量必须先声明后使用
- 该区域的数据可以在同一类型范围内不断变化
- 变量在同一作用域内不能重名
- 变量三要素(变量名 值 数据类型)
2.5 变量的数据类型
基本类型:数值类型:整型(短整型short2、整型int2、长整型long4)、浮点型(单精度float4、双精度double8)、字符型char1
构造类型:数组、结构体struct、共用体union、枚举类型enum
指针类型
空类型void
- 浮点型常量默认为double型,声明float型常量时,需要加’f’或’F’。
- printf(“d1=%f”,d1);//在输出时,默认保留小数点6为。
2.12 指针入门
2.13 值传递和地址传递
2.13.1 C语言传递参数(或者赋值)可以是值传递(pass by value),也可以传递指针(a pointer passed by value),传递指针也叫地址传递
1)默认传递值的类型:基本数据类型(整型类型、小数类型,字符类型),结构体,共用体。
2)默认传递地址的类似:指针、数组
值传递:将变量指向的存储内容,在传递赋值时,拷贝一份给接收变量。
地址传递:指针传递,如果是指针就将指针变量存储的地址传递给接收变量。如果是数组,就将数组的首地址传递给接收变量。
第三章 常量
1)常量是固定值,在程序执行期间不能改变。这些固定的值,又叫做字面量。
2)常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。
3)常量的值在定义后不能进行修改。
整数、浮点、字符、字符串常量
3.3.1 定义常量的方式
1)使用#define预处理器,#define 常量名 常量值
2)使用const关键字,const 数据类型 常量名=常量值;//即就是一个语句
3.6 const和#define的区别
1)const定义的常量时,带类型,define不带类型
2)const是在编译、运行的时候起作用,而define是在编译的预处理阶段起作用
3)define只是简单的替换,没有类型检查。简单的字符串替换会导致边界效应
4)const常量可以进行调试的,define是不能进行调试的,主要是预编译阶段就已经替换掉了,调试的时候就没它了
5)const 不能重定义,不可以定义两个一样的,而define通过undef取消某个符号的定义,再重新定义
6)define可以配合#ifdef、#ifindef、 #endif来使用,可以让代码更加灵活,比如我们可以通过#define 来启动或者关闭调试信息
第四章 运算符
4.1算术运算符
+-*/%
%:7%5=2;a%b=a-a/b*b
4.2 关系运算符(比较运算符)
==、!=、>、<、<=、>=
1)关系运算符的结果要么是真(非0表示),要么是假(0表示)
2)关系表达式经常用在if结构的条件中或循环结构的条件中
4.3 逻辑运算符
与&&、或||、非!
用于连接多个条件(一般来讲就是关系表达式),最终的结果要么是真(非0表示),要么是假(0表示)
4.4 赋值运算符
=、+=、-=、*=、/=、%=、<<=、>>=、&&=、|=
运算顺序从右往左。
4.5 位运算符
作用于位,并逐位执行操作。
4.6 三元运算符
条件表达式?表达式1:表达式2;
条件表达式为非0(真),运算后的结果是表达式1;
条件表达式为0(假),运算后的结果是表达式2;
4.7 运算符优先级
4.8 标识符的命名规则和规范
4.8.1 标识符概念
1)C语言对各种变量、函数等命名时使用的字符序列称为标识符
2)凡是自己可以起名字的地方都叫标识符
4.8.2 标识符的命名规则
- 由26 个英文字母大小写,0-9 ,或 $ 组成
- 数字不可以开头
- 不可以使用关键字和保留字,但能包含关键字和保留字。
- C 语言中严格区分大小写,长度无限制。
- 标识符不能包含空格
4.8.3 标识符命名规范
- 程序中不得出现仅靠大小写区分的相似的标识符int x,X: 变量x 与X 容易混淆
- 所有宏定义、枚举常数、常量(只读变量)全用大写字母命名,用下划线分隔单词.比如: const double TAX_RATE = 0.08,//TAX_RATE 只读变量#define FILE_PATH"/usr/tmp"
- 定义变量别忘了初始化。定义变量时编译器并不一定清空了这块内存,它的值可能是无效的数据、运行程序,会异常退出
- 变量名、函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写: xxxYyyZ7z [驼峰法,小驼峰,比如 short stuAge = 20;]比如:tankShotGamc 大驼峰[TankShotGame]
4.9 关键字
关键字中所有字母都为小写。
4.10 键盘输入语句
4.10.2 步骤
1)include <stdio.h>
2)使用scanf函数
3)使用适当的格式参数接收输入