随笔分类 -  C

摘要:在C和C++语言开发中,指针、内存一直是学习的重点。因为C语言作为一种偏底层的中低级语言,提供了大量的内存直接操作的方法,这一方面使程序的灵活度最大化,同时也为bug埋下很多隐患。 因此,无论如何,我们都要对内存有一个清晰的理解。一、对内的分配 32位操作系统支持4GB内存的连续访问,但通常把内存分为两个2GB的空间,每个进程在运行时最大可以使用2GB的私有内存(0x00000000—0x7FFFFFFF)。即理论上支持如下的大数组:char szBuffer[2*1024*1024*1024]; 当然,忧郁在实际运行时,程序还有代码段、临时变量段、动态内存申请等,实际上是不可能用到上述那么. 阅读全文
posted @ 2011-11-24 21:51 it笨笨 阅读(5966) 评论(13) 推荐(6) 编辑
摘要:要理解一个C程序,仅仅理解组成该程序的符号是不够的。程序员还必须理解这些符号是如何组合成声明、表达式、语句和程序的。 我们先来看看下面的一个语句:( *( void(*)())0)(); 这是当计算机启动时,硬件将调用首地址为0位置的子例程。像这样的表达式恐怕会令每个C/C++程序员的内心都“不寒而栗”吧。 然而,完全不用害怕,任何C变量的声明都是由两部分组成:类型以及一组类似表达式的声明符。最简单的声明变量,如:float f , g ; 这个声明的含义是:当对其求值时,表达式f和g的类型为浮点型。 同样的逻辑也适用于函数和指针类型的声明,例如:float ff(); 这个声明的含义是:表. 阅读全文
posted @ 2011-11-21 22:03 it笨笨 阅读(25936) 评论(9) 推荐(4) 编辑
摘要:术语“符号”指的是程序的一个基本组成单元,其作用相当于一个句子中的单词。在程序中,符号就是程序的一个基本信息单元。而组成符号的字符序列就不同,同一组字符序列在某个上下文环境中属于一个符号,而另一个上下问环境中可能属于完成不用的另一个符号。1.1 =不同于== 在C语言中符号=作为赋值运算,符号==作为比较,一般而言赋值运算相对于比较运算出现得更频繁,因此字符较少的符号=就被赋予了更常用的含义——赋值操作。此外,在C语言中赋值符号被作为一种操作符对待,因而重复进行赋值操作(如a=b=c)可以很容易地书写,并且赋值操作还可以被嵌入到更大的表达式中。 但是,这种使用上的便利性可能导致一个潜在的问题. 阅读全文
posted @ 2011-11-20 21:06 it笨笨 阅读(2610) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示