查看
-rw-rw-r-- 1 hq hq 0 7月 1 10:52 file1.c
文件类型 权限 链接数 用户名 组名 大小 修改时间 文件名
字符类型
b:块设备文件 /dev
c:字符设备文件
d:目录文件 文件夹
-:普通文件 .c .h .txt
l:链接文件 <LinuxC高级>
s:套接字文件 <网络编程>
p:管道文件 <IO>
rw-rw-r-- 文件权限 三个一组 共9个
rwx:可读可写可执行 rw-:可读可写不可执行
权限值:r:4 w:2 x:1 -:0
超级用户
在终端输入 sudo passwd root 设置超级用户和密码,下次使用su命令即可进入超级用户
复制与移动
cp和mv区别:
cp之后源文件还在;mv之后源文件不在
在复制文件夹时,代码需为 cp -r 文件夹名字 要复制到的地址
vi 编辑器
插入模式:编辑代码
底行模式:保存、退出、复制、分屏、查找、替换等
若vi test2.c时,test2.c不存在,则在保存后会自动在当前路径生成test2.c文件。
gcc 编辑器
简写
gcc test.c
生成a.out文件
gcc test.c -o test
运行 ./test
完美编译分为4步
预处理
gcc -E test.c -o test.i
编译
gcc -S test.i -o test.s
汇编
gcc -c test.s -o test.o
链接
gcc test.c -o test
运行 ./test
非数值型数据
\转义字符 'n'字符n '\n'换行
'0' 48
'A' 65
'a' 97
关键字
存储类型: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
标识符
1.由字母、数字、下划线(_)组成
2.开头不能是数字
3.不能和关键字重名
4.见名知意(驼峰结构)
算术运算符
/ %
(%只能用于整型运算)
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
++
独立成句
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
习题
解析代码:分析每一步变量的取值
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 10;
int b = a--; //a=9 b=10
int c = a + b + 2; //a=9 b=10 c=21
int d = (b--) + (++c); // b=9 c=21 d=10+22=32
printf("%d\n",d);
} [单选题] *
A. d = 31
B. d = 32
C. d = 33
D. d = 34
答案为 b
答案为k=9
答案为d