重探c语言
文章平均质量分 74
後悔無期
这个作者很懒,什么都没留下…
展开
-
堆栈的深度理解
接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。 首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Global)、本地变量(Local),静态变量(Static)、寄存器变量(Reg转载 2013-08-03 13:04:41 · 12224 阅读 · 0 评论 -
c语言内存占用区域,以及详解
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(stati转载 2013-08-03 12:58:22 · 1770 阅读 · 0 评论 -
c语言原码,补码,反码你们不在意的由来
======================1.预备知识。==================注意:此处的'=='是相等的意思。'='是赋值的意思。在机器世界里:正数的最高位是符号位0,负数的最高位是符号位1。对于正数:反码==补码==原码。对于负数:反码==除符号位以外的各位取反。 补码==反码+1. 原码==补码-1后的反码==补码的反码+1。(读完转载 2013-08-03 12:17:18 · 1459 阅读 · 0 评论 -
C指针以及为什么不能返回局部指针变量,却可以返回局部变量
指针,是一个无符号整数(unsigned int),它是一个以当前系统寻址范围为取值范围的整数。如:int* 是一个指针变量类型指针变量和普通变量没有什么区别,指针32位四字节,里面保存的是一个内存空间的地址,就像一个整形变量int a, a就可以代表一个整数,一个指针变量int* p,p就可以代表一个地址数据,而*地址,代表去这个地址指向的内存空间取出里面的内容,因此如果是要原创 2013-08-03 13:15:08 · 9618 阅读 · 2 评论 -
对于面向过程和面向对象的理解
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,转载 2013-08-19 23:23:56 · 801 阅读 · 0 评论