C语言笔记
注:
参考书:《C程序设计第五版》谭浩强著
本文为学习记录笔记,供个人学习记录,如有错误,望指正,感谢!
第一章:程序设计和C语言(待更)
第二章:算法-程序的灵魂(待更)
第三章:顺序程序设计
3.1表现形式及其运算
3.1.1数据表现形式
- 常量(值不变)
分类 | 举例 | 备注 |
---|---|---|
整型常量 | 1000,-345 | 正数、零、负数 |
实型常量 | 0.345,12.34e3 | e后数字为整数 |
字符常量 | ‘a’,’\r’,’\033’ | 单引号 |
字符串常量 | “boy” | 双引号 |
符号常量 | #define PI 3.1416 | 大写,不占内存 |
- 变量
有名字、具有特定属性的存储单元
先定义后使用
- 常变量
有名字的不变量,值不变,有类型,占内存
表示:const int a=3;
- 标识符
一个对象的名字
由:字母、数字、下划线组成,首字符不能为下划线
3.1.2数据类型
- 整形
二进制补码形式
unsigned:只有整型(包括char)可以使用
类型 | 字节数 | 取值范围 |
---|---|---|
int | 4 | -231~231-1 |
unsigned int | 4 | 0~232^-1 |
short | 2 | -215~215-1 |
long | 4 | -231~231-1 |
long long | 8 | -263~263-1 |
- 字符型
二进制形式存储,包括127个字符
0+7个二进制表示(共8个二进制:一字节)
占一个字节
- 浮点型
类型 | 字节数 | 有效数字 | 范围(绝对值) |
---|---|---|---|
float | 4 | 6 | 0,1.2×10-38~3.4×1038 |
double | 8 | 15 | 0,2.3×10-308~1.7×10308 |
- 最小正数(float):1.2×10-38
- 实型:双精度处理
3.2运算符和表达式
运算符:基本操作中,除了控制语句和输入输出
运算符 | 表示 |
---|---|
算术运算符 | ±*/% ++ - - |
关系运算符 | >< >= <= == != |
逻辑运算符 | ! && 丨丨 |
位运算符 | << >> ~ ^ & 丨 |
赋值运算符 | = |
条件运算符 | ? : |
逗号运算符 | , |
指针运算符 | * & |
求字节数运算符 | sizeof |
成员运算符 | . —> |
下标运算符 | [ ] |
强制类型转换运算符 | (类型) |
其他 | 函数调用 () |
- 实/实=double
- int/int=int
- 若结果为负:向零取整
- %只能用于整型
- 算术运算:左结合性
- 赋值运算:右结合性
3.3 C语句
- 控制语句
- 函数调用语句
- 表达式语句
—任何表达式都可以加上分号而成为语句
—赋值语句:a+=b 等价于 a=a+b
—变量赋初值:
全部赋予初值:int a=3;float f=3.65;
部分赋予初值:int a,b,c=5;
赋同一个初值:int a=3,b=3,c=3;
× (不能写成int a=b=c=3;) - 空语句
- 复合语句
3.4 数据的输入输出
- C语音本身不提供输入输出语句,由C标准函数库中的函数来实现
- 头文件#include <stdio.h>
区分 | 备注 |
---|---|
#include <stdio.h>(标准方式) | 从存放C编译系统的子目录中寻找所要包含的文件 |
#include “stdio.h” | 先当前目录寻找,找不到再按标准方式 |
- printf与scanf(格式输入输出)
printf:若干个任意类型,可自定义输出
- printf
格式字符
格式字符 | 备注 |
---|---|
d格式符 | %d,有符号的十进制数,%5d右对齐 |
c格式符 | 一个字符,0~127,若超出考虑最后一字节 |
s格式符 | 字符串,printf("%s",“CHINA”);输出CHINA |
f格式符 | 实数,6位小数,%m.nf为数据占m列,小数占n列 |
e格式符 | 指数,默认小数占6位,指数5位,小数点前1位且非零(例:1.234560 e+002) |
- scanf
–格式控制处为地址变量(scanf("%d",&a); )
–%c 对于空格字符与转义字符是有效的
–输入数据时,遇到非法字符则该数据结束(scanf("%d%c",a,b);若输入1234a123,则a=1234,b=a)
- putchar与getchar(字符串输入输出)
–putchar(a);
–a=getchar(); //putchar无参数,若输入多个字符,则要使用多个putchar与getchar函数,此时终端连续输入多个字符后,按Enter
–putchar(getchar()); //接收到的字符直接输出
- puts与gets(字符输入输出)