C语言程序的绝大部分内容应该记录在以.c作为扩展名的文件里,这种文件叫源文件,C语言里还包含以.h作为扩展名的文件,这种文件叫做头文件
C语言程序里可以直接使用数字和加减乘除四则运算符号(*代表乘法,/代表除法)
/* * C语言程序练习 * */ int main() { 2 * 2 + 5; return 0; }
C语言里每个计算步骤最后都必须用分号结束,每个用分号结束的计算步骤叫做一条语句
C语言程序里绝大部分语句应该包含在大括号中间
C语言里的大括号可以用来代表函数(函数可以看作是一组语句),每个函数都必须有自己的名字,不同函数的名字不能相同
C语言程序里必须包含一个叫做main的函数,这个函数叫主函数,程序必须从主函数的第一条语句开始执行,当主函数里最后一条语句结束后整个程序结束
C语言允许函数结束后用一个数字表示它的工作结果,这个数字叫做函数的返回值,主函数应该有返回值,如果主函数返回值是0表示,程序希望计算机认为它正常结束了,如果不是0表示程序希望计算机认为它出问题了。
C语言里预先保留了几十个英文单词,它们叫做关键字.每个关键字都有特定的用途,不能随便使用,所有关键字都是由小写英文字母构成的
return就是一个关键字,它的主要用途是结束,函数的执行(任何时候都能起这个作用),辅助用途是指定返回值的数值(当关键字后有数字的时候才起这个作用,把这个数字当作返回值使用)。
计算机里根据不同数字在某个方面的区别把数字分成几组,每组叫做一个数据类型,每个数据类型都有自己的名字,整数是一种数据类型,这种数据类型的名称是int,这种类型里包含几乎所有不带小数点的数字
程序里的数字必须有类型,程序里不带小数点的数字默认都是整数类型的
如果函数有返回值就必须把返回值的类型名称写在函数名称前
C语言程序代码规范
1.一行里最多包含一条语句
2.同级别语句最左边一列应该上下对齐
3.在合适的地方使用空格和空行
C语言里通常包含预处理指令,预处理指令以#做开头,不是以分号做结尾标准C阶段遇到的预处理指令都可以把文件里的内容替换成其他内容,#include预处理指令可以把一个头文件的内容,包含到当前文件里,这个预处理指令里通常采用相对路径表示被包含头文件的位置,把相对路径包含在<>中间表示以系统中预先规定好的一组目录依次作为起点,把相对路径包含在""中间表示首先以当前文件所在目录作为起点,然后再以系统中预先规定好的一组目录依次作为起点
/* * C语言程序结构演示 * 版本: 1.0 * */ #include "01demo.h" int main() { 4000/*华为手机的价格*/ - 1000/*小米手机的价格*/; //4000是华为手机的价格,1000是小米手机的价格 return 0; }
C语言程序里可以加入文字性的说明信息,这些信息必须放在注释区域里,计算机直接忽略注释区域里的内容,单行注释以//做开头一直到行尾,多行注释以/*做开头以*/做结尾
C语言里会使用名称区分不同内容,这些名称叫做标识符,标识符最好采用英文单词编写,标识符的编写规则
1.第一个字符只能是英文字母或下划线
2.后面的每个字符可以是英文字母,下划线或阿拉伯数字
3.大小写不同的标识符是不同的标识符(大小写敏感)
4.关键字不可以作为标识符使用
5.标识符的长度没有限制,计算机只会截取前面一部分使用
6.标识符可以采用驼峰方式或下划线方式编写
编译器用来把编写好的文件翻译成计算机认识的格式,gcc是Linux系统里最常用的C语言编译器,MinGW是Windows里的gcc
Linux系统里C语言程序开发基本过程
1.使用vi编写源文件
2.使用gcc把编写好的文件翻译成计算机认识的格式(编译)
3.使用./a.out作为命令执行得到的结果文件
gcc编译器工作步骤
1.处理所有预处理指令
2.把第一步的处理结果翻译成计算机认识的格式(编译)
3.把第二步的处理结果合并成最终的可执行文件(链接)
gcc选项介绍
-E 只处理预处理指令
-c 只完成预处理和编译处理结果是以.o作为扩展名的目标文件
-o 用来决定结果文件名称
-std=c89/-std=c99
决定按照什么版本的规范进行编译,默认采用c89规范编译
C语言里事先提供了一组工具,它们叫做标准函数,每个标准函数用来解决一个常见的问题,每个标准函数都有自己的名字,不同标准函数的名称不同,程序里可以通过函数调用语句使用标准函数
printf标准函数可以把程序里的数字显示在屏幕上,为了使用这个标准函数需要包含stdio.h头文件,可以在双引号里使用占位符把数字转移到双引号后面.双引号后面的数字可以是未知的(比如可以是一个计算公式,计算机会首先计算公式的结果然后用这个结果替换双引号里面的占位符),不同类型的数字应该使用不同的占位符,%d这个占位符就是和整数类型数字配合使用的,可以在一条语句里使用多个占位符,这个时候,就应该在双引号后面写多个数字,数字个数应该和占位符个数一样。
/* * printf标准函数演示 * */ #include <stdio.h> int main() { printf("1\n"); printf("%d\n", 1); printf("%d\n", 6 - 5); printf("a%db%dc\n", 8 - 7, 1 + 1); return 0; }
/* * printf标准函数练习 * */ #include <stdio.h> int main() { printf("4000 - 1000 = 3000\n"); printf("%d - %d = %d\n", 4000, 1000, 4000 - 1000); return 0; }
程序里的所有数字都必须记录在内存里,计算机的内存由大量的字节构成,每个字节可以单独记录一个数字,每个字节有一个编号,不同字节的编号不同,这个编号叫做字节的地址,所有字节的地址从0开始向正数方向递增,所有字节的地址有前后顺序,地址小的在前,地址大的在后
内存里几个相邻的字节可以合并成一个整体用来记录一个数字
内存里用来记录一个数字的所有字节叫做一个存储区,一个存储区只能记录一种类型的数字,存储区也有地址,存储区的地址就是它所包含的字节中最前面那个字节的地址
C语言程序里可以使用变量代表存储区,对变量的操作就是对它所代表存储区的操作,所有变量必须首先声明然后才可以使用变量声明语句用来声明变量,变量声明语句可以让计算机为程序分配存储区,可以在一条语句里声明多个同类型变量,这个时候只需要一个类型名称
/* * 变量演示 * */ #include <stdio.h> int main() { int num = 0, num1 = 0; //变量声明语句 num = 10; //赋值语句 num = 6 + 9; num + 10; printf("num是%d\n", num); num = num; return 0; }
/* * 变量练习 * */ #include <stdio.h> int main() { int price1 = 4000, price2 = 1000; printf("%d - %d = %d\n", 4000, 1000, 4000 - 1000); printf("%d - %d = %d\n", price1, price2, price1 - price2); return 0; }
赋值语句可以向变量代表的存储区里放一个数字,赋值语句里需要使用赋值操作符(=),赋值操作符左边的内容必须可以代表存储区,这种内容叫左值(变量就是最简单的左值),赋值操作符右边的内容必须可以代表数字,赋值操作符可以把右边的数字放到左边的存储区里
/* * 变量演示 * */ #include <stdio.h> int main() { int num = 1; printf("%d ", num); num = num + 1; printf("%d ", num); num = num + 1; printf("%d ", num); num = num + 1; printf("%d ", num); num = num + 1; printf("%d\n", num); return 0; }
/* * 变量练习 * */ #include <stdio.h> int main() { int num = 1, ten = 10; printf("%d X %d = %d\n", num, ten - num, num * (ten - num)); num = num + 1; printf("%d X %d = %d\n", num, ten - num, num * (ten - num)); num = num + 1; printf("%d X %d = %d\n", num, ten - num, num * (ten - num)); num = num + 1; printf("%d X %d = %d\n", num, ten - num, num * (ten - num)); num = num + 1; printf("%d X %d = %d\n", num, ten - num, num * (ten - num)); return 0; }
可以在声明变量的时候就对变量进行赋值,这叫做变量的初始化,C语言里所有变量都应该初始化
可以在程序里直接把变量当数字使用,这个时候计算机会先从变量对应的存储区里获得数字然后再进行其他计算
变量名称可以代表两个完全不同的内容(一个是存储区另外一个是存储区里的数字),由它所在的位置决定
存储区的地址也可以用来代表存储区,变量名称前使用符号&可以计算出变量对应存储区的地址,可以使用%p作为占位符把地址数据显示在屏幕上
变量可以用来代表一个固定数字
变量可以用来代表一组数字(变量在不同的时候代表不同的数字)
/* * 变量练习 * */ #include <stdio.h> int main() { int num = 54321, ten = 10; printf("%d\n", num); num = num / ten; printf("%d\n", num); num = num / ten; printf("%d\n", num); num = num / ten; printf("%d\n", num); num = num / ten; printf("%d\n", num); return 0; }