目录
正文
一、C语言的优缺点
C语言是面向过程的程序设计语言,一门“死而不僵”的语言,优点是稳定、可靠、通用性极强,但是对大型程序来说面向过程的语言使用起来会比较麻烦。
1.从命令行获取输入内容
使用函数scanf("XX0XX1...",&YY0,&YY1,...)。其中&表示获得数据的地址,获取数据后放到这个地址中,XX是一般的数据类型比如%d、%o等,YY是要赋值的对象。使用转换说明%nXX也可以限制接收的个数,比如%7s、只接收7个字符装入字符串中。
2.输出内容到命令行
使用函数printf("%m.nXX0",XX1)。m表示占位个数、包括小数点的位置,少于实际长度将显示全部内容、多出实际长度将用空格填充(正数空格左填充,负数空格右填充),n表示取值个数(数值类型取小数点后边几位,字符串表示先取几位、后填充),之后按照这个格式输出;XX0是常见数据类型,比如%o八进制、%x十六进制、%e指数形式、%g自动选择、%u无符号整形、%s字符串(此时的n可以控制字符串输出的位数),另外可以外加\n换行等转义字符。
3.C99输出的奇怪数
-1.#INF00负无穷、1.#INF00正无穷、NaN非数
1.顺序、条件、循环语句
一般是顺序语句,程序从上到下、从左到右顺序执行;条件语句可以跳转,用if、else进行条件的判断,不过要注意的是这种特殊情况switch_case。表达式具有某个常量返回值,当符合case的常量时执行后边的语句块;如果需要跳出switch,在相应的case语句块后面加上break即可,否则程序会在符合的地方一直执行下去。
switch(表达式)
{
case 常量: 语句块
case 常量: 语句块
default: 语句块
}
先判断条件,符合后执行循环体;可以不执行循环体
while(表达式)语句;
先执行循环体,在判断条件,如果满足继续执行循环体;至少执行一次循环体
do 语句 while(表达式);
如果知道循环的具体范围,多数情况下都用for循环;表达式1做初始化用、表达式2是条件、表达式3一般用做自增自减
for(表达式1;表达式2;表达式3)语句
2.表达式
表达式就是一个可以运算的式子,容易出错的地方是运算符优先级:
优先级
运算符
0
() [] .
1
! 正+ 负- ~ ++ -- *指针取地址内容
2
* / %
3
加+ 减-
4
<< >> >>>
5
< <= > >= instanceof
6
== !=
7
按位与&
8
^
9
|
10
&&
11
?:
12
= += -= *= /= % = &= |= ^= ~= <<= >>= >>>=
1.常规数据类型
(1)定义和修饰
除下表外其他数据类型修饰字:%o八进制,%x十六进制,%g自动选择格式不输出无意义的0
数据类型/数据类型限定字
格式化输入输出表示
大小
short或usigned short
%h其他
char
%c
字符型,占2个byte;1个byte占4个bit位
char *
%s
字符串,本身占4个byte
int
%d或%i
整形,占4个byte位
long
%ld
长整形,占4个byte位
unsigned
%u
无符号整形,占4个byte位
float
%f
单精度浮点数,占4个byte位
double
%lf
双精度浮点数,占8个byte位
long double
%Lf
%n
记录%n出现之前的所有字符数
static
static的变量只初始化一次;
语句块外声明static,表示该变量只在声明它、包含它的文件可见;
语句块中声明static,这个变量在程序彻底结束前都不会丢失数据
const
常量
volatitle
数据是易变的,每次数据都必须从内存中获取、不允许编译器做优化
extern
extern声明的变量不会即刻分配空间
re