C/C++
至浊至愚
自由之思想,独立之人格
展开
-
静态函数库和动态函数库
静态函数库是在编译链接时,把库文件代码全部加入到可执行文件中,因此生成的文件比较大,而运行时也就不需要库文件了。Linux中静态函数库的后缀名一般为”.a”,windows中为”.Lib”; 动态函数库是在编译链接时没有把库文件代码加入到可执行文件中,而是将要调用的函数所在文件的和该函数在文件中的位置等信息链接进目标程序。Linux中动态函数库的后缀名一般为”.so”,windows中为”.dll原创 2015-06-03 03:04:57 · 1149 阅读 · 0 评论 -
孙鑫vc笔记——网络编程部分
讲述socket的基本概念及简单的应用,我挑一些我认为比较重要的地方和细节的东西做了笔记,供大家学习,虽然简单,但很实用,强烈建议面试前看一下。原创 2015-02-06 23:27:57 · 1101 阅读 · 1 评论 -
C++常考面试题:实现内存拷贝函数
C++常考面试题:实现内存拷贝函数原创 2015-01-30 14:03:42 · 1250 阅读 · 0 评论 -
C++二维数组
某公司的笔试题,自己分析得出的答案,并在后面对二维数组元素表示形式做出总结。新手朋友别嫌啰嗦,耐心看完并记住对你会有帮助的。老鸟们也欢迎来提意见。原创 2014-10-15 18:09:17 · 1115 阅读 · 0 评论 -
C++对象的浅复制和深复制
浅复制:两个对象复制完成后共享某些资源(内存),其中一个对象的销毁会影响另一个对象深复制:两个对象复制完成后不会共享任何资源,其中一个对象的销毁不会影响另一个对象原创 2014-12-02 17:20:59 · 1526 阅读 · 0 评论 -
int a[5]={1,2,3,4,5};printf("%d\n", *((int*)(&a+1)-2);
int a[5]={1,2,3,4,5};printf("%d\n", *((int*)(&a+1)-2);原创 2014-10-21 08:53:17 · 7010 阅读 · 0 评论 -
release版本和debug版本
release版本和debug版本区别,release版本的可执行程序为什么非常大?原创 2014-10-21 09:54:45 · 1143 阅读 · 0 评论 -
exit()和_exit()和return
exit()和_exit()和return区别原创 2014-10-21 09:25:14 · 912 阅读 · 0 评论 -
C++防止头文件重复包含
C++防止头文件重复包含原创 2014-10-20 11:12:07 · 992 阅读 · 2 评论 -
Malloc/free 与 new/delete 的区别
Malloc/free 与 new/delete 的区别原创 2014-10-20 08:55:50 · 904 阅读 · 0 评论 -
快速掌握函数指针
快速掌握函数指针原创 2014-10-20 09:57:37 · 904 阅读 · 0 评论 -
C宏替换优先级
C宏替换优先级原创 2014-10-15 11:09:15 · 1677 阅读 · 0 评论 -
判断两个单向链表是否有相交,并找出交点。
判断两个单向链表是否有相交,并找出交点。原创 2014-10-10 16:09:27 · 2048 阅读 · 2 评论 -
C++类的前置声明
如果只对类或结构体做了声明而未定义,例如下面的程序:struct X;struct Y{ void f(X *memx); void g(X memx);};用指针传递是可以的,而传递对象则会报错,因为编译器知道如何传递一个地址,这一地址大小是一定的,而不用管被传递的对象类型大小。如果试图传递整个对象,编译器就必须知道X的全部定义以确定它的大小以及如何传递它原创 2015-02-18 19:44:23 · 877 阅读 · 0 评论 -
孙鑫vc笔记——多线程编程
我的孙鑫vc视频笔记,多线程编程部分,包含很多细节知识,分享给大家原创 2015-02-08 18:48:12 · 1017 阅读 · 0 评论 -
数组参数的sizeof
数组传参sizeof原创 2015-05-30 06:24:10 · 2338 阅读 · 0 评论 -
vs中.h文件与.cpp文件之间的切换
拒绝繁琐!快捷键实现vs中.h文件与.cpp文件之间的切换翻译 2015-04-20 14:25:41 · 10367 阅读 · 3 评论 -
cin>>和getline混用需谨慎
造成程序错误结果的原因是,用户输入完年龄后按回车结束输入,把“\n”留在了输入流里,而cin不会主动删除输入流内的换行符,这样换行符就被getline读取到,getline遇到换行符返回,因此程序不会等待用户输入。原创 2015-03-24 14:41:29 · 8735 阅读 · 6 评论 -
运算符重载函数的参数类型以及返回值类型
参数类型: 大家都知道运算符重载函数的参数类型必须是引用类型,这是为什么呢。拿我们最常用的赋值运算符重载来说,如果参数类型不是引用类型,那么传参时就需要一个对象的副本,将实参复制到形参,这种复制是浅复制,并不会为形参分配内存空间,这就导致如果类中有指针类型,形参和实参的指针就指向同一块内存,再调用析构函数时就会出错。返回值类型: 同理返回值类型也要是引用类型,因为调用赋值运算符重载函数时也会创建原创 2015-03-23 10:37:06 · 8925 阅读 · 1 评论 -
sizeof到底该怎么算
sizeof到底该怎么算原创 2015-02-27 16:04:39 · 821 阅读 · 0 评论 -
C语言结构体和C 结构体的区别
C语言结构体和C 结构体的区别原创 2015-02-25 16:10:11 · 1533 阅读 · 2 评论 -
C语言的const和CPlusPlus的const
C 的const和C语言的#define都可以用来定义常量,二者是有区别的,const是有数据类型的常量,而宏常量没有,编译器可以对前者进行静态类型安全检查,对后者仅是字符替换,没有类型安全检查。而C语言中的const与C 也有很大的不同,在C语言中用const修饰的变量仍是一个变量,表示这个变量是只读的,不可显示地更改,而在C 中用const修饰过后,就变成常量了。原创 2015-02-27 20:30:35 · 761 阅读 · 0 评论 -
运算符优先级问题
使用左移一位代替乘以2的运算,是很好的方法,但在C/C++中“+”运算符优先级高于“<<”,因此会先进行加法运算再左移两位,得到结果4*n。原创 2015-03-16 22:48:19 · 795 阅读 · 0 评论 -
C语言结构体位域
C语言结构体位域是很细节很重要的问题,在面试中如果这个方面考虑的好会得到很高的加分,在工作中更是可能会遇到此问题原创 2015-03-20 13:57:04 · 1062 阅读 · 0 评论 -
宏定义的细节问题
宏定义的细节问题原创 2015-03-16 23:04:46 · 922 阅读 · 0 评论 -
有符号int和无符号int的比较
int array[] = {1,2,3,4};#define TOTAL_ELEMENTS (sizeof(array)/sizeof(array[0]))int main(){ int d = -1; if(d <= TOTAL_ELEMENTS) printf("TRUE\n"); else printf("FALSE\n");}原创 2015-03-19 17:20:57 · 4544 阅读 · 0 评论 -
面试常考:int a[5],问a和&a的区别
乍一看还没啥区别,事实上a和&a的地址也是相同的,但他们的意义是不一样的,a表示数组的首地址,也就是a[0]的地址,类型是int,而&a是数组对象的地址,类型是int[5],a+1表示的是a[1]的地址,而&a+1表示的下一个数组对象的地址。原创 2015-02-13 15:34:27 · 1526 阅读 · 0 评论 -
常指针和指向常量的指针和指向常量的常指针
常指针和指向常量的指针和指向常量的常指针原创 2014-10-11 16:51:50 · 1080 阅读 · 0 评论 -
C++实现String类
这是一道十分经典的面试题,可以短时间内考查学生对C++的掌握是否全面,答案要包括C++类的多数知识,保证编写的String类可以完成赋值、拷贝、定义变量等功能。原创 2014-10-10 22:42:41 · 1481 阅读 · 0 评论 -
简短程序判断大小端
简短程序判断大小端原创 2014-10-10 14:47:54 · 1059 阅读 · 0 评论 -
C++中public、protect和private用法区别
Calsspig : public animal,意思是外部可以随意访问Classpig : protect animal ,意思是外部代码无法通过该子类访问基类中的publicClasspig : private animal ,意思是告诉编译器从基类继承的每一个成员都当成private,即只有这个子类可以访问原创 2014-05-30 12:50:12 · 2736 阅读 · 0 评论 -
C++内存分配方式
一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数名,局部变量的名等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)—全局变量和静态变转载 2014-05-31 14:06:22 · 636 阅读 · 0 评论 -
什么是虚方法
虚方法使用起来比较简单,但很难理解,对于一个没有原创 2014-05-30 17:11:53 · 1813 阅读 · 0 评论 -
细说C++覆盖方法和重载方法
很对初学者朋友可能都搞不清覆盖方法和重载方法的区别是什么,那么下原创 2014-05-30 14:55:28 · 989 阅读 · 0 评论 -
算法的五个特征
如此经典的问题,大学生考试的时候一定会考的,可原创 2014-06-05 10:46:08 · 16854 阅读 · 1 评论 -
C++常见面试题
1. C中static有什么作用 (1)隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。 (2)static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局转载 2014-06-04 15:59:10 · 545 阅读 · 0 评论 -
MyClass a,b[2],*p[2]调用了几次构造函数
在网上看到的这道题,答案是3次。因此原创 2014-06-04 14:51:03 · 3758 阅读 · 1 评论 -
C语言中static的作用
(1)隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。 (2)static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量。 (3)stat转载 2014-06-04 15:54:38 · 566 阅读 · 0 评论 -
引用调用
前几天有朋友问我,什么是引用调用,我告诉他要养成原创 2014-06-04 10:11:28 · 1208 阅读 · 0 评论 -
同名的全局变量与局部变量
朋友们都知道,局部变量命名时是不能与全局变量同名的,但是我们偏要它同名会发生什么呢原创 2014-06-04 10:34:40 · 4043 阅读 · 0 评论