1. unix指令补充(mac os x系统环境下)
编译: cc -c 文件名.c
链接: cc 文件名.o
编译、链接同时进行: cc 文件名.c
运行当前路径下的可执行文件(.out文件):./a.out
更改可执行文件的名称:cc .c文件名或.o文件名 –o 新文件名
编译:只检查程序语法错误,不检测main()函数
链接:.o文件与C语言自带的函数库合并并生成可执行文件,并检查main()函数
2. 注释
单行注释:// 注释内容
多行注释:/* 注释内容 */
单行注释可以嵌套单行和多行注释
多行注释可以嵌套单行注释
多行注释不能嵌套多行注释
3. 关键字和标识符
关键字:C语言本身定义的特殊符号。如:int、for、switch
标识符:程序员自己定义的特殊符号。如:函数名
标识符命名规则:
1) 只能由26个英文字母、阿拉伯数字(0-9)及下划线组成
2) 严格区分大小写
3) 不能用数字开头
4) 不能使用关键字
标识符命名规范:
1) 尽量起一个有意义的名称
2) 如果所定义的标识符中包含多个单词,应使用驼峰表示(除开第一个单词,后面每个单词的首字母大写)。如:firstName
4. 数据
数据包括动态数据和静态数据
静态数据:指一些永久性的数据,一般存储于硬盘中
动态数据:指程序运行过程中,动态产生的临时数据,一般存储于内存中
数据类型
- 基本数据类型
整型:int 浮点型:float/double 字符型:char
- 构造类型(多个基本数据类型组成)
数组/结构体(struct)/枚举(enum)
- 指针类型(*)
- 空类型(void)
数据定义
作用域:从定义变量的那一行开始,直到所在函数结束或所在代码块结束
数据输出
输出float型数据时,默认小数位数为6位
控制小数位数时,为”. 控制小数的个数”。如:输出两位小数printf(“%.2f”,a);
代码块
代码块应用优点:及时释放内存,提高性能
5. 变量
变量值互换
- 利用第三变量
int temp a=10,b=5;
temp=a;
a=b;
b=temp;
- 不利用第三变量互换变量值
int a=10,b=5;
a=b-a;
b=b-a;
a=b+a;
变量的内存分析
1) 内存寻址由大到小(分配内存是内存地址由大到小分配)
2) 变量越先定义,内存地址越大
3) 取得变量地址:&变量名
4) 输出地址时:格式符用 p%
5) 一个变量一定要初始化后才能使用
6. scanf()函数
1) 只接受变量的地址
2) 是一个阻塞式的函数,等待用户输入
注意点:
1) 可一次性输入多个数值并且以某些符号隔开,默认用回车分隔
2) 如果scanf参数中以空格隔开,实际输入可以以空格、tab、回车作为分隔符
3) scanf中格式控制部分(即:双引号内" ")不能写\n
4) scanf输入带空格,tab换行的字符串时,格式控制部分用"%[^\n]"控制(可以输入除回车键之外所有字符),否则字符串会在遇到空格,tab换行时将空格,tab换行符号后面的字符串作为一个新字符串存储
代码演示:
char str[64];
scanf("%s",str);
printf("%s",str);
//输入hello world,则只输出hello
char str[64];
scanf("%[^\n]",str);
printf("%s",str);
//输入hello world,输出hello world