c语言基础知识
染指红尘
这个作者很懒,什么都没留下…
展开
-
C语言本身有输入和输出语句?
C语言本身并不提供输入输出语句,输入和输出操作是由函数来实现的。在C标准函数库中提供了一些输入输出函数,例如,printf函数和scanf函数。在使用他们时,千万不要误认为他们是C语言提供的“输入输出语句”。printf和scanf不是C语言的关键字,而只是函数的名字。C提供的函数以库的形式存放在系统中,它们不是C语言文本中的组成部分。不把输入输出作为C语言提供的语句的目的是使C语言编译系统简单,转载 2011-11-19 21:51:41 · 5326 阅读 · 0 评论 -
const用法详解
看 到const关键字,很多人想到的可能是const常量,其实关键字const并不能把变量变成常量!在一个符号前加上const限定符只是表示这个符号 不能被赋值。也就是它的值对于这个符号来说是只读的,但它并不能防止通过程序的内部(甚至是外部)的方法来修改这个值(C专家编程.p21)。也就是说 const变量是只读变量,既然是变量那么就可以取得其地址,然后修改其值。看来const也是防君子不防小转载 2011-11-03 16:45:12 · 1536 阅读 · 0 评论 -
为何a++不可以作为左值而++a能
a++的运算结果并不是a这个变量的引用,而是一个临时变量,其值为i的值,所以你无法进行以下运算: a++=5; 甚至编译器不允许你对一个临时变量重新赋值,上面的表达式会引起编译错误 。左值,说得通俗一点,就是可以出现在表达式左边的值(等号左边),可以被改变。 可以简单的这么理解(通过C++语法) 你看看前、后++分别是怎样重载的 比如A类中重载两个++吧原创 2011-11-03 16:06:01 · 1002 阅读 · 0 评论 -
函数返回值—返回局部变量
看看下面的程序的输出: #include char *returnStr() { char *p="hello world!"; return p; } int main() { char *str; str=returnStr(); printf("%s\n", str);转载 2011-11-03 16:17:30 · 344 阅读 · 0 评论 -
堆栈详解 常量字符串为什么位于静态存储区
一、程序的内存分配 1、栈区(stack):由编译器自动分配释放; 2、堆区(heap) :一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表; 3、全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区转载 2011-11-07 17:34:33 · 1739 阅读 · 1 评论 -
算数、逻辑移位
比如一个有符号位的8位二进制数11001101,逻辑右移就不管符号位,如果移一位就变成01100110。算术右移要管符号位,右移一位变成10100110。逻辑左移=算数左移,右边统一添0逻辑右移,左边统一添0算数右移,左边添加的数和符号有关e.g:1010101010,其中[]位是添加的数字逻辑左移一位:010101010[0]算数左移一位:0101转载 2011-12-04 12:00:23 · 724 阅读 · 0 评论