虚拟机VMware10.0.4的下载与安装
链接:https://pan.baidu.com/s/1ZiAGUJU8njkVyLcZMs1IDw
提取码:xkgg
相关功能的快捷键
打开终端 Ctrl+Alt+t
放大字体 Ctrl+Shift+‘+’
缩小字体 Ctrl+‘-’
基本操作命令:
mkdir 新建文件夹
touch 新建文件
ls 查看当前目录下文件
vim 文件名:若文件不存在,则新建并打开;若文件存在,直接打开
i INSERT插入模式
Esc 退出模式
:wq 保存并退出
:w 保存
:q 退出
:wq!强制保存并退出
编译器 gcc
说明:先保存文件,然后gcc 文件名
运行 ./a.out
gcc 1.c -o 1 :将1.c的可执行文件a.out改名叫1 运行:./1
C语言:
数据类型
基本数据类型:(32位编译器)
int(4个字节) short(2个字节) long(4个字节) long long (8位字节)
float(4个字节) double(8个字节)
char(1个字节) 带单引号的 'a' '1' '?' 看成一个字节的int
unsigned
signed
复合数据类型:数组 指针 函数 结构体 共同体
空类型:void
字节byte: 计算机分配内存的最小单元
位bit: 计算机的最小单位
关系:1byte=8bit
运算符:
算术运算符:+ - * / % ++ --
5/2=2 int/int=int
5/2.0 5.0/2=2.5 int/float------>float/float=float
隐式转换:范围小-->范围大
int+float----->float
float+double----->double
unsigned+signed------->unsigned
强制转换:(数据类型)变量名 (数据类型)(表达式)
例: float f = 12.5;
printf("f = %f,(int)f = %d\n",f,(int)f); 12.5 12
强制转换本身是没有发生改变的
5%2=1
'a'%'A'
%两边的参数不能是float
++:++如果放在变量名前,先自加再使用;放在变量名后,先使用再自加
关系运算符:> < >= <= == !=
逻辑运算符:
&&:只要有一个表达式为假,结果就为假
|| :只要有一个表达式为真,结果就为真
!:0<---->1
赋值运算符:= +=
位运算符:(int char)
&: 10&13 1010 & 1101 = 1000
|: 10|13 1010 | 1101 = 1111
~ :
^ : 10^13 1010 ^ 1101 = 0111
<<: 1<<3 0001 << 3 1000 7<<3 0111 << 3 0011 1000
>>: 7<<3 0111 >> 3
三目运算符(条件运算符):表达式1?表达式2:表达式3
先计算表达式1的值,如果为真执行表达式2,否则执行表达式3
逗号运算符:表达式1,表达式2,表达式3
从左往右依次计算,取最后一个表达式的值作为逗号表达式的值
sizeof():计算内存大小 int a ; sizeof(int) sizeof(a)
结构性语句
顺序语句:
printf("字符串",跟格式控制符一样多的参数);
scanf("格式控制符",地址列表);
int a,b;
scanf("%d%d",&a,&b);
如果有多个参数在进行输入,需要用输入分隔符将其隔开 输入分隔符:空格 回车 TAB键
scanf("%d,%d",&a,&b);
scanf("%d%d\n",&a,&b);
如果后引号前面有\n或者空格或者TAB键,那么我们在输入的时候需要用一个非空字符来结束输入
输入的时候不可以控制浮点数的精度
scanf("%c%*c%c",&a,&b); %*c用来抑制掉一个字符
选择语句:
单分支
if(表达式)
{
语句;
}
双分支
if(表达式)
{
语句;
}
else //else后面没有表达式
{
语句;
}
多分支
if(表达式){ 语句;}
else if(表达式){ 语句;}
else if(表达式){ 语句;}
....
else
{
语句;
}
循环语句:重复的干某件事
<1>for(表达式1;表达式2;表达式3)
{
循环体;
}
表达式1:循环变量的初始状态
表达式2:循环执行的条件
表达式3:循环变量的改变
<2>表达式1;
while(表达式2)
{
循环体;
表达式3;
}
<3>表达式1;
do
{
循环体;
表达式3;
}while(表达式2);