[1]vi编辑器
创建文件test1.c 用vi编辑器打开
touch test1.c vi test1.c
或
vi test2.c 当前路径没有test2.c文件
需要保存,自动生成test2.c
vi编辑器可以新建文件,注意保存
文件相关操作:
在终端查看文件的内容 cat test1.c 在终端查看文件内容,默认查看前十行 head test1.c 在终端查看文件内容de前n行 head -n test1.c 在终端查看文件内容,默认查看后十行 tail test1.c 在终端查看文件内容de后n行 tail -n test1.c
#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 printf("hello world\n"); printf("hello world\n"); }
[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]计算机的存储单位 1024 1000
计算机最小存储单位 位bit 字节byte
1字节=8位 位:0 1
1KB=1024B 1024
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
十进制转二进制:
1.短除法
2.拆分法 8421
3.计算器 导航 程序员
二转十 8421
二转八
一位八进制用三位二进制转
11 010 110--->0326
八转二
0777--->111 111 111
二转十六
一位十六进制用四位二进制转
1101 0110---》0xd6
十六进制转二进制
0xab--->10101011
5.2 非数值型数据
非数值型数据实际应用,操作的ASCII码值
man手册 一般用来查看一些命令或函数的用法
终端输入:man man
man手册查看ASCII码表:
char字符型 ' '包裹一个字符
'\0' 0 字符串结束标志
'\n' 10 换行
SPACE 32 空格
'0' 48
'A' 65
'a' 97
'2'-48=2 48--->'0'
'A'+32='a'
\转义字符 'n'字符n '\n'换行
[6] 词法符号
运算符 关键字 标识符 分隔符 标点符号
6.1关键字
存储类型 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
32位:4G 64位:2^48 虚拟内存空间
栈区 由系统自动开辟,自动回收 M 堆区 程序员手动开辟空间(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 算术运算符
+ - * / % ++ --
/整数相除,结果会向下取整
int a=5/2;
printf("%d\n",a); //2
========================
float a=5/2;
printf("%f\n",a);//2.000000 默认打印小数点后六位
float b=2;
printf("%f\n",b);//2.000000
==========================
float a=5.0/2;
printf("%f\n",a); //2.500000
==========================
强制转换
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
int a=1234; printf("%d\n",a/1000); printf("%d\n",a/100%10); printf("%d\n",a/10%10); printf("%d\n",a%10);
++
i++;//i=i+1;
独立成句
int a=6;
1)++a;
printf("%d\n",a); //7
- a++;
printf("%d\n",a); //7
赋值运算
int a=6;
1)int b=++a; //+ =
printf("%d %d\n",a,b);//7 7
2)int b=a++; //= +
printf("%d %d\n",a,b);//7 6
打印语句
int a=6;
1)printf("%d\n",++a);//7
printf("%d\n",a);//7
2)printf("%d\n",a++);//6
printf("%d\n",a);//7
以下程序输出结果是(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