exit、return、_exit、_Exit的区别 exit、return、_exit、_Exit函数的使用区别。 exit把控制权交给系统,而return将控制权交给调用函数。 1、exit函数和return函数的主要区别是: 1)exit用于在程序运行的过程中随时结束程序,其参数是返回给OS的。也可以这么讲:exit函数是退出应用程序,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息。 main函数结束时也会隐式地调用ex 学习中心 任侠 2012-08-06 7440 热度 1评论
va_start、va_arg、va_end在参数可变函数中的使用 当无法列出传递函数的所有实参的类型和数目时,可用省略号指定参数表,在函数体中声明一个va_list,然后用va_start函数来获取参数列表中的参数,使用完毕后调用va_end()结束。 C语言可变参数函数及三个宏va_start、va_arg和va_end的使用 一、可变参数函数的实例 大家熟知的printf()函数声明如下: int printf(const char * form 学习中心 任侠 2012-08-06 7621 热度 0评论
不使用第三个变量交换两个变量值的方法 记得面试题中有次遇到一题为,不使用第三个变量,实现两个变量的值交换。回来带着思考搜索了如下几种方法,仅供学习参考。 int a = 1; int b = 2; 方法一:巧用运算符特性实现 C++代码 inline void swap(int& a, int& b) { &n 学习中心 任侠 2012-07-30 7461 热度 1评论
对于数组的a与&a的区别 对于数组的a与&a的区别:数组名a可以作数组的首地址,而&a是数组的指针(如将数组a当做指向数据的指针,则&a可以理解为指向指针a的指针)。 看这个例子: C++代码 int main() { int a = {1,2,3,4,5 学习中心 任侠 2012-07-30 5645 热度 0评论
转义字符与字符串的长度 在计算包含转义字符的字符串长度时,需要特别注意转义字符的长度判断,这在考试、面试题中较为常见。 举例如下(可先尝试计算下执行结果): C代码 char str = "vmx43\\np1434q3aabc"; printf("%d, %dn", strlen(str), 学习中心 任侠 2012-07-30 7642 热度 0评论
短路运算符:条件运算与逻辑运算符 短路运算符就是我们常用的“&&”、“||”,一般称为“条件操作”,短路运算符只能用于逻辑表达式内。非短路运算符则是“& 与”、“| 或”、“^ 异或”,一般称为“逻辑操作”,非短路运算符可用于位表达式和逻辑表 学习中心 任侠 2012-07-28 7842 热度 0评论
致命错误: iostream.h:没有那个文件或目录 linux下用g++编译一个示例程序,出现错误提示: 致命错误: iostream.h:没有那个文件或目录 解决: 替换所有<iostream.h>为: <iostream> using namespace std; 学习中心 任侠 2012-07-28 16951 热度 1评论
野指针产生的原因与避免方法、调试寻找野指针的方法 “野指针”是代指指向的地址空间或变量无法进行结果预期,或者和原本的使用目的不同,导致程序出core或未按照设计预期运行的情况。“野指针”是很危险的,if无法判断一个指针是正常指针还是“野指针”。有个良好的编程习惯是避免“野指针”的唯一方法。 百度测试工程师面试题 如果程序定义了一个指针,就必须要立即让它 学习中心 任侠 2012-07-19 12888 热度 0评论
sizeof()与strlen()函数详解 一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的 学习中心 任侠 2012-07-10 6149 热度 0评论
堆、栈和堆栈内存分配占用的区别 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回 学习中心 任侠 2012-07-10 9597 热度 0评论