第一章:绪论
1.2 软件与程序
- 【概念】:硬件、软件(数据和指令的集合)、程序(命令序列集合)
- 【认识C程序】:计算机语言大致分为解释型(解释一句动态地执行一句)和编译型(一次性生成目标代码——机器码后静态地执行),C语言属于编译型语言。手写完毕源代码后,经编译器编译后可得目标代码(如以".exe"文件形式呈现)。
// 注释是给人看的,编译器编译时直接忽略注释
#include <stdio.h>
// 双斜杠为C++风格的单行注释,是否接受由编译器决定
// 带井号的为预处理(编译前)命令:宏定义、文件包含、条件编译
#include <stdlib.h>
/* 斜杠加星为C风格的多行注释,两者均被GCC编译器接受
include为文件包含命令 */
int main()
// 每个C源程序必有一个主函数,为激活者调用该程序的出入口
/* int main()为C++89标准的主函数定义,int main(void)为C99标准的主函数定义
两种风格均被GCC编译器接受
*/
{
//该花括号界定函数main()的函数体
printf("Hello world!"); //C语句是C程序的基本单位,常以封号结尾
{
system("pause");} //C语句(块)也可由花括号界定
return 0; //主函数必须要有返回值,一般返回0表示主函数正常结束
}
以上就是C程序最简单的模样了
第二章:数据类型与表达式
2.2 C语言的符号
- 【例子】:
/* An example*/
#include <stdio.h>
int main(void){
int x=3, y=5, z;
// x,y,z即为变量,int为变量的数据类型
// 可在定义变量的同时给它赋值,变量的首次赋值即初始化
// 变量映射相应内存区域的地址,不同数据类型的变量一般占用不同大小的内存空间
z=x+y;
// =,+均为运算符
// x+y为表达式,表达式的特征是具有“值”
// z=x+y;为赋值语句
printf("%d+%d=%d\n", x, y, z);
// printf()为stdio.h库中的库函数,函数的参数用(英文)逗号分隔
// 其首个参数"..."为格式输出控制字符串,%d为格式转换说明,其余原样输出
return 0; // return语句给函数返回一个相应类型的值
}
2.3 数据类型
/* An Example*/
#include <stdio.h>
int main(){
int ix=3, iy=5, iz;
// 变量必须先定义后使用,因为定义了数据类型后(系统和人)才能确定变量的存储长度、取值范围和合法的运算操作。类型前可加类型修饰符(short,unsigned等)
// 变量需要先初始化后使用,无论初始化与否变量映射的内存区域均有“值”,初始化前因“值”未知而无法使用
// 整型变量一般占四个字节
float fx=2.0, fy=5.5, fz;
// 单精度浮点型变量一般占四个字节
char cx='A', cy='D', cz;
// 字符型变量一般占1个字节
ix = iy+iz;
fx = fy+fz;
cx = xy+cz;
printf("%d+%d=%d\n", ix, iy, iz);
printf("%.2f+%.2f=%.2f\n", fx, fy, fz);
// .2为格式修饰符,基本格式为m.n,m为输出域宽,.n为输出精度,m前加-可左对齐
printf("%c+%c=%c\n", cx, cy, cz);
// 字符型变量的值为整数,字符与整数通过ASCII码表建立映射
return 0;
}
2.4 常量和变量
/* An Example */
#include <stdio.h>
#define PI 3.14159
// 此处为宏定义命令,编译时编译器将遇到的字符PI替换为3.14159
// 预处理命令不是语句,末尾不可加封号
#define R 5.3
int main(){
const float pi = 3.1415926;
// 此处为C99标准中的const常量,与宏常量不同,编译器可检查其类型
float r=5.3, c, a;
c =