好久没用 C 语言了,回顾下基本知识。
1. 如初见
先找找感觉,经典的 “HelloWorld”:
#include<stdio.h>
int main()
{
printf("Hello World");
return 0;
}
- C 程序的结构
简单来说,一个 C 程序就是由若干头文件和函数组成。
注:
1.#include<stdio.h>
是一条预处理命令,它的作用是通知 C 语言编译系统在对 C 程序进行正式编译之前需做一些预处理工作。
2. 在最新的 C 标准中,main
函数前的类型为int
而不是void
一个 C 程序有且只有一个主函数,即 main 函数:
C 程序就是执行主函数里的代码,也可以说这个主函数就是 C 程序中的 唯一入口。
注意:C 程序一定是从主函数开始执行的。
2. 基本数据类型
编程时给变量或者函数起的名字就是 标识符。
C 语言规定,标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线 _ 组成的字符串,并且第一个字符必须是字母或下划线。在使用标识符时还有注意以下几点:
- 标识符的长度最好不要超过8位。因为在某些版本的 C 中规定标识符前 8 位有效,当两个标识符前8位相同时,则被认为是同一个标识符。
- 标识符严格区分大小写。
- 标识符最好选择有意义的英文单词组成做到”见名知意”,不要使用中文。
- 标识符不能是 C 语言的关键字。
- 变量及赋值
注意:在定义中不允许连续赋值,如
int a=b=c=5;
是不合法的。
- 基本数据类型如图所示:
整型,实型,字符型:
整型:
注:int、short int、long int 是根据编译环境的不同,所取范围不同。而其中 short int 和 long int 至少是表中所写范围,但是 int 在表中是以 16 位编译环境写的取值范围。另外 C 语言 int 的取值范围在于他占用的字节数,不同的编译器,规定是不一样。ANSI 标准定义 int是占 2 个字节,TC 是按 ANSI 标准的,它的 int 是占 2 个字节的。但是在 VC 里,一个 int 是占 4 个字节的。
浮点型(浮点数据是指带小数的数字):
- 格式化输出语句
C 语言中的常用格式化符:
- 常量
直接常量,例如:
printf("%d\n", 100); //整型常量
printf("%f\n", 3.14); //实型常量
printf("%c\n", 'A'); //字符型常量
printf("Hello"); //字符串常量
符号常量(定义格式:#define 标识符 常量值
)
例如:
#define PI 3.14
自动类型转换:
注:字节小的可以向字节大的自动转换,但字节大的不能向字节小的自动转换。
强制类型转换
在使用强制转换时应注意以下问题: 1. 转换后不会改变原数据的类型及变量值,只在本次运算中临时性转换。 2. 强制转换后的运算结果不遵循四舍五入原则。
3. 运算符
算术运算符、赋值运算符、关系运算符、逻辑运算符、三目运算符。
- 算术运算符:
除法运算中注意:
如果相除的两个数都是整数的话,则结果也为整数,小数部分省略。如8/3 = 2;而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000。取余运算中注意:
该运算只适合用两个整数进行取余运算,如: 10%3 = 1; 而 10.0%3 则是错误的;运算后的符号取决于被模数的符号,如 (-10)%3 = -1; 而 10%(-3) = 1。注:C 语言中没有乘方这个运算符,也不能用 ×, ÷ 等算术符号。
- 自增与自减运算符
注意:无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1,无论是a–还是–a都等同于a=a-1,在表达式执行完毕后a的值都自减少1。
赋值运算符
简单赋值运算符,即=
复合赋值运算符,即+=、-=、*=、/=、%=
关系运算符
关系表达式的值是“真”和“假”,在 C 程序用整数 1 和 0 表示。逻辑运算符
逻辑运算即“与、或、非”,如下:
三目运算符
表达式1 ? 表达式2 : 表达式3;
先判断表达式 1 的值是否为真,如果是真的话执行表达式 2;如果是假的话执行表达式 3。