摘要:
1、const 的理解 const 是C语言的一个关键字,需要注意的是,const 关键字是把变量变为一个只读的变量(也就是不可以作为左值),绝对不是将这个变量变为常量。也就是说经过const 修饰的变量成为只读的变量之后,那么这个变量就只能作为右值(只能赋值给别人),绝对不能成为左值(不能接收别人的赋值)。 而 C++ 则是将 const 修饰的常量变为一个真正的常量(变量的内容不... 阅读全文
摘要:
1、操作系统 1.1、Linux 内核(系统)的组成的部分: 内核主要有:进程调度、内存管理、虚拟文件系统、网络接口和进程通信五个部分组成。 (1)进程调度 进程调度是CPU对多个进程对CPU访问的调度算法,使得进程宏观上并行执行。常用的调度算法有:先来先服务原则、高优先级别优先、短进程优先(谁执行 阅读全文
摘要:
介绍我的系统的搭建的方式: WIN7 64 + VMWARE STATION,方式是进行桥接的方式。最近突然出现了问题,Ubuntu ping 外网或者 PING WIN 7 的时候,出现 Destination Host Unreachable 的错误;想着去修改网卡的链接形式: 编辑--》虚拟网络的编辑器--》更改设置,想要改 桥接方式指定网卡出现: 无法将网络改为桥接状态,没有来桥接的... 阅读全文
摘要:
1、函数库 函数库其实就是一些写好的函数集合,方便别人的复用。实现的封装之后,最终的目的都是给别人调用。 2、库的形式 库的形式分:动态链接库和静态链接库。 优点: (1)库文件都是被编译好的二进制文件,别人看不到源代码,可以保持保密;(2)同时不会因为不小心被修改出现问题,便于维... 阅读全文
摘要:
1、编译的过程 源码.c->(预处理)->预处理过的.i源文件->(汇编)->汇编文件.S->(编译)->目标文件.o->(链接)->elf可执行程序 预处理:预处理器 汇编 :汇编器 编译 : 编译器 链接 : 链接器 预处理就是调用预处理器做一些代码的前期执行动作,使得编译器可以专心只做和编译相关的事情。 2、常... 阅读全文
摘要:
1、联合体(共用体)union U{ char s[9]; int n; double d; }; 联合体和结构体的定义和使用是一样的,就不详细的赘述。必须要记住:联合体所有的成员变量都是共享同一块内存的,从相同的起始地址进行赋值。也就是给联合体的一个成员变量赋值的时候,就会改变... 阅读全文
摘要:
1、结构体 C语言中,结构体是一块连续的内存,各个成员按照定义的顺序,一次尽心存放,编译器会按照语法进行分析之后,计算需要的大小空间进行分配,为了每个成员都可以被快读访问到,所以需要进行地址对齐,struct MyStruct{ int a; char b; int c;}; 一个... 阅读全文
摘要:
1、字符串 严格意义上来说,C语言并没有字符串原生的字符串的类型,而是通过字符指针来实现的:char *p = "LINUX";。而对于其他的高级语言来说,比如C++的就存在字符串类型: string p1 = "I LOVE LINUX"; 。 字符串在内存中其实就多个字节组成的,且地址都是连续的 阅读全文
摘要:
1、内存的区域 对于内存的区域划分上,不同的区域划分上都各有不同。 划分1: 代码区、堆、栈、 全局区(静态存储区)、 文字常量区、 划分2: 代码段、堆、栈、 data段、BSS段、文字常量区 全局区: 又成为静态存存储区。保存的是全局变量和静态变量(带有static 关键字)。全局区分为两个区域:一个区域保存的是经过初始化,且初始化的... 阅读全文
摘要:
1、指针数组和数组指针(1)指针数组也就是说是数组,只不过数组保存的是指针,也就是专门用于保存地址的数组int *p[5]; 也就是说,p[] 数组里面保存的都是地址,、使用:*a[i]; // 保存的地址的嘛,使用肯定就是加上 星号(2)数组指针也就是说是一个指针,但是这个指针是只能指向数组的... 阅读全文