[1]vi编辑器
vi编辑器编写文件方式:
touch test1.c 生成文件
vi test1.c 在vi编译器编译文件
或
vi test2.c 当前路径没有test2.c文件 ,需要保存,保存后自动生成test2.c
vi编辑器可以新建文件,注意保存
文件相关操作:
cat test1.c 在终端查看文件的内容
head test1.c 在终端查看文件内容,默认查看前十行
head -n test1.c 在终端查看文件内容de前n行
tail test1.c 在终端查看文件内容,默认查看后十行
tail -n test1.c 在终端查看文件内容de后n行
#include <stdio.h> 函数库
#开头 预处理
.h文件 头文件
< .h> 系统配置文件 /usr/include
" .h" 用户新建的头文件(一般在当前文件夹里)
int main(int argc, const char *argv[])
main 主函数,程序的入口;一个工程中主函数有且仅有一个
扩展:命令行参数 argc 命令行输入字符串的个数
argv 存储命令行输入的字符串
{
printf("hello world\n");
return 0; // 主函数中的return,是主函数的结束标志 0整数 int
// 函数的返回值要和函数的数据类型保持一致;不要返回值,
函数数据类型可以定义成void
}
[2]vscode编辑器
终端:code 文件夹名字
[3] gcc编译器
3.1 简写:
gcc test.c 编译文件,生成a.out
./a.out 执行文件
或
gcc test.c -o test (可执行文件名)
./test 执行文件
3.2 完整编译 4步
预处理 展开头文件,替换宏定义,删除注释 gcc -E test.c -o test.i 编译 检查语法问题,有错报错,没有则继续运行生成汇编文件 gcc -S test.i -o test.s 汇编 生成一个不可执行的二进制文件 gcc -c test.s -o test.o 链接 链接库函数,最终生成二进制可执行文件 gcc test.o -o test(可执行文件名)
运行:./test
练习:
预处理、编译、汇编、链接 编译
[4]计算机的存储单位
计算机最小存储单位 位bit 字节byte
1字节=8位 位:0 1
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
[5] 计算机数据表示形式
5.1 数值型数据
二进制 0 1 2:10
八进制 0-7 8:010
十进制 0-9
十六进制 0-9 a-f 16:0x10
a | b | c | d | e | f |
10 | 11 | 12 | 13 | 14 | 15 |
- 十进制转二进制:
1)短除法
2)拆分法 8421
3)计算器--->导航---->程序员
5.2 非数值型数据
非数值型数据实际应用,操作的ASCII码值
man手册 一般用来查看一些命令或函数的用法
终端输入:man man
man手册查看ASCII码表:
char字符型 ' '包裹一个字符
'\0' 0 字符串结束标志
'\n' 10 换行
SPACE 32 空格
'0' 48
'A' 65
'a' 97
[6] 词法符号
运算符 关键字 标识符 分隔符 标点符号
6.1关键字(32)
存储类型:auto static extern register
数据类型:int char float short long double signed unsigned
构造数据类型:struct enum union
分支:if else switch case default for do while go to break continue
其他:void const sizeof volatile return typedef
A
栈区:由系统自动开辟,自动回收
堆区:程序员手动开辟空间(malloc),手动回收(free)
全局区/静态区: .bss .data
常量区:char *p="hello"
6.2 标识符
在给变量、数组、函数等命名时, 遵循标识符的命名规则:
1)由字母、数字、下划线(_)组成
2)开头不能是数字
3)不能和关键字重名
4)见名知意
helloWorld:小驼峰命名(除第一个单词外,其他单词开头大写)
HelloWorld:大驼峰命名(每个单词开头大写)
练习:
x y sum a100 _A7b_3x 3’a x*y @ b.8 while
6.3 运算符
算术运算符 逻辑运算符 位运算符 关系运算符 三目运算符 赋值运算符
6.3.1 算术运算符
+ - * / % ++ --
/整数相除,结果会向下取整
强制转换
float a=(float)5/2; //强制转换只在当前这一行生效
printf("%.1f\n",a); //2.500000 %.1f保留一位小数
float b=5/2;
printf("%f\n",b); //2.000000
%取余 5%2==1 13%10=3
只能用于整数运算
练习:
1234 使用/ %分别表示出 1 2 3 4
B 1/2=0只取整数部分
练习:
以下程序输出结果是 D
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 10;
int b = ++a; //b=11 a=11
int c = a + (b++); //c=11+11=22 b=12
int d = b+c; //d=22+12=34
printf("%d\n",d);
return 0;
} [单选题] *
A. d = 31
B. d = 32
C. d = 33
D.d = 34