C语言
文章平均质量分 74
Mathlian9
这个作者很懒,什么都没留下…
展开
-
C语言动态内存管理
说到内存管理,一定脑海中浮现的第一幅图就是程序内存结构图通常的内存开辟方式在栈上开辟空间,开辟的大小是固定的,数组在声明的时候必须指定数组长度,他在编译的时候好分配内存。1.动态内存函数void* malloc (size_t size);//该函数是内存申请一块size大小的连续可用空间,并返回指向该内存的指针。 如果开辟成功,则返回指向该内存的指针如果开辟失败,则返回一个空指针返回类型是voi...原创 2018-07-13 16:25:57 · 143 阅读 · 0 评论 -
数据在内存中的存储
数据在内存中的存储首先认识一下计算机存储结构:寄存器:中央处理器CPU的一部分,空间比较小在kb级别,用来暂存指令,数据和地址。CPU在处理数据时往往先把数据取存到寄存器中,然后再做处理,这样可以加快直接从内存中读取指令和数据。高速缓存区:内存与CPU之间的存储器,容量比较小在MB级别,但是速度比内存高的多(比寄存器要慢一倍左右),接近于CPU的速度,它是加速读取速度的一个桥梁, CPU在内存中读...原创 2018-07-13 16:27:51 · 3771 阅读 · 0 评论 -
const和valotile关键字
const关键字: const关键字主要是为了防止修饰的对象被修改,如果修饰的变量被修改那么编译器就会报错。当const修饰一个变量的时候,首先把变量变成一个只读变量,这里的只读不是在全局数据区或段,他原来在那个区域他就在哪个区域。使用const的好处是能够降低写程序bug。 1.修饰全局变量 2.修饰指针:指针不可以修改,但是指针所指向的变量可以修改。 3.表示函数的输入...原创 2018-07-13 16:28:32 · 471 阅读 · 0 评论 -
程序的翻译环境和执行环境
程序的翻译环境和执行环境 在ANSN C( ANSI C是由美国国家标准协会(ANSI)及国际标准化组织(ISO)推出的关于C语言的标准。ANSI C 主要标准化了现存的实践, 同时增加了一些来自 C++ 的内容 (主要是函数原型) 并支持多国字符集 (包括备受争议的三字符序列)。 ANSI C 标准同时规定了 C 运行期库例程的标准)的任何一种实现中,存在俩种不同的环境 1.翻译环境...原创 2018-07-13 16:30:23 · 359 阅读 · 0 评论 -
函数指针
函数指针: 类似数组指针的理解,首先函数指针是指向函数的指针。 首先看一段代码:void test(){ printf("hello\n");}int main(){ printf("%p\n", test); printf("%p\n", &test); system("pause"); return 0;}输出结果...原创 2018-07-13 16:31:32 · 150 阅读 · 0 评论 -
指针数组和数组指针
指针和数组的区别: 数组: 1.数组要么在静态存储区被创建(全局数组),要么在栈上被创建(局部数组); 2.数组名对应着(不是指向)一块内存(大小已知),其地址与容量在生命周期保持不变,只有数组内容可以改变。 指针: 1.指针可以随时指向任意类型的内存块(不同类型可以用强制类型来转换实现),他的特征是“可变的”。 2.常用指针来操作内存,指针远比数组灵活,但也更...原创 2018-07-13 16:33:47 · 252 阅读 · 0 评论 -
指针
指针的概念:指针就是地址,它的值指向存在电脑存储器中的另一个值(通过指针找到以它为地址的内存单元)。二级指针:指针变量也是变量,对于变量都有对应的地址,存放指针变量的地址就是二级指针为什么存在指针: 计算机是将内存分成很多小的单元,每个单元对应一个独一无二的地址,所以一个地址就对应一个空间。 对于一个32位的机器,假设有32根地址线,假设每根地址线再寻址的是产生一个电信号(0或1),那...原创 2018-07-13 16:35:06 · 237 阅读 · 0 评论