
C/C++
liangzhaowei
这个作者很懒,什么都没留下…
展开
-
读字符串越界
写C程序的时候经常会用到读字符串。当为字符串数组开辟的空间不够大的时候,输入字符数大于数组大小会发生不可预知的运行时的错误,这种错包括1> 运行时错误,2>结果错误,3,>段错误。遗憾的是C语言本身没有提供检测这种的错误的机制。下面根据代码分析产生错误的类型以及原因。分析1#include int main(void){ int sum = 0, i = 0; cha原创 2013-09-07 15:25:26 · 904 阅读 · 0 评论 -
c/c++中static关键字的作用
static在C里面可以用来修饰变量,也可以用来修饰函数。1.static局部变量a.生存周期:静态局部变量在函数内定义,生存期为整个源程序;b.存储方式:当用static修饰时,从原来的栈中存放改为静态存储区;c.作用域:与自动变量相同,只能在定义该变量的函数内使用,退出该函数后,尽管该变量还继续存在,但不能使用它;d.初始化:对基本类型的静态局部变量若在说明时未赋以初值,则转载 2013-09-26 10:02:22 · 633 阅读 · 0 评论 -
C++ _int64 不能直接进行移位运算
_int64 x = 1cout//x的输出为0,是因为64位整数不能直接作移位运算。//如下实现移位操作://64左移len 位U64 move_left64(U64 a, int len){ U32 *p = (U32*) &a; if (len <32) { *(p+1) <<= len; U32 tmp = (*p) >> (32-len); *(p+1) |=原创 2013-12-17 11:06:54 · 4931 阅读 · 2 评论 -
字符串算术表达式运算-逆波兰解法
/**转自百度百科代码*/思路:用到两个栈S1,S2,S1存放表达式逆波兰表示的结果,S2临时栈存放运算符。#include#include#include#include#include#include #define max 100usingnamespa转载 2014-03-15 21:28:50 · 855 阅读 · 0 评论