学习笔记|(四)c语言和开发准备

一、开发准备

  • 常用命令:

创建文件:vi filename
保存文件::w
关闭文件::q
切换:i/a 可以从命令模式切换到编辑模式,esc可以从编辑模式切换到命令模式
拷贝:yy(拷贝一行)/yw(拷贝一个词)
粘贴:p
删除:dd/dw
光标移动:hjkl左下右上
跳到文件头:gg
跳到文件尾:G
移动到首行:^
移动到行尾:$
按单词移动:向前w/2w,向后b/2b
查找关键字:/key
查找与替换::%s/keyword/替换字/gc
多窗口::split(横向切成两半)/vsplit(纵向切成2半)
窗口间跳转:ctrl+ww(会在两个窗口直接进行轮训)/ctrl+w[hjkl]

二、基本类型:

  • short(2个字节16位)、int(4个字节)、long(4个字节)-->非科学计算,建议用整型
  • float(4个字节,低精度)、double(4个字节,高精度)
  • char(1个字符,1个字节,a/b/c)
  • void(无符号型,使用指针的时候才用,指针可以理解为一个地址)

可以用printf打印:%d整型、%f表示浮点型、%c表示字符型,%p表示地址

三、变量与常量:

  • int a =1;//变量,可以再复制
  • const int b = 2;//常量,值不能改变了
  • 内存管理:


    学习笔记|(四)c语言和开发准备_第1张图片
    内存管理.png

栈区内的内存是系统自动分配的,一般为4~8M,不会太大,执行一个方法的时候,系统会自动为他分配内存,然后将它的局部变量等一个一个的压入栈,方法结束后,再逐一弹出栈,这也就解释了局部变量是有范围的;

堆区中的内存需要调用malloc去申请,用完了之后要手动释放掉,不然会造成内存泄露;如果用了别人的指针,还会造成野指针‘’
分配内存:void* mem = malloc(size);
释放内存:free(mem);

四、指针(门牌号)与数组

  • 指针就是内存地址 : void*(不关注类型)、char*

1.指针本身可以运算
2.指针所指的内容可以运算
3.函数指针:可以指向不同的函数,得到不同的结果

int add(int a,in b);//声明一个函数
int (*f)(int ,int);//声明一个函数指针,**参数和返回结果都要和原函数一样**
f = add;//将原函数的地址赋给指针f

使用:
f(3,5);
  • 数组:从某个地址开始,连续的类型相同的空间

五、结构体:

struct st{
    int a;//只能定义成员变量,以分号结尾
    int b;//不能定义方法
};//注意这里有一个分号

使用:
Struct st obj;
obj.a = 10;
enum em{
    red_color = 0,//以,分隔
    blue_color, //后面的值递增
    yellow_color //最后一个可以不要,
};

使用:
enum em et = blue_color;//值只能是枚举中的值

六、循环

//1表示永远为真
while(1){
    ....
}

七、文件操作

  • 文件类型:FILE* file
  • 打开文件: FILE* fopen(pahh,mode)
  • 关闭文件:fclose(FILE*)
FILE* file;//定义一个文件

file = fopen("1.txt","a+");//打开一个文件,a+表示没有文件就创建,有就在之前的文件后追加

fwirite("hello!",1,6,file);//写入文件

rewind(file);//把游标移到文件的开头

char buf[1024] = {0, };
fread(file,1,6,buf);//读取文件

fclose(file);//关闭文件

你可能感兴趣的:(学习笔记|(四)c语言和开发准备)