C/C++
文章平均质量分 65
风_桥
这个作者很懒,什么都没留下…
展开
-
指針和引用
指针是C系语言的特色。指针是C++提供的一种颇具特色的数据类型,允许直接获取和操纵数据地址,实现动态存储分配。 指针问题,包括常量指针、数组指针、函数指针、this指针、指针传值、指向指针的指针等,这些问题也是各大公司常备考点,下面让我们一起学习其中的重点与难点。 1、指针与引用的区别? 答案: (1)非空区别。在任何情况下都不能使用指向空值的引用。因此如果你使用一个变量并让转载 2011-12-05 00:28:22 · 2205 阅读 · 0 评论 -
C++ 虚继承
C++中虚拟继承的概念 为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。 class 派生类名:virtual 继承方式 基类名 virtual是关键字,声明该基类为派生类的虚转载 2013-08-29 15:00:08 · 596 阅读 · 0 评论 -
sizeof and strlen
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。 char aa[10];cout<<strlen(aa)<<endl; //结果是不定的 char aa[10]={'\0'}; cout<<strlen(aa)<<endl; //结果为0 ch转载 2013-08-15 14:17:53 · 857 阅读 · 0 评论 -
运算的位实现
1.乘法运算 当乘以2的次方时候可以用左实现 eg:100*32=100 2.出法和乘法类似是右移 4 %取模可以用&,但模数必须是2的次方 eg:99%32=99&(32-1)原创 2013-07-23 15:24:02 · 638 阅读 · 0 评论 -
c一些经典的操作
1:求下面函数的返回值 -- 统计1的个数----x&(x-1)表达式的意义 int func(int x) { int countx = 0; while(x) { countx++; x = x&(x-1); } return countx; } 假定x = 9999 10011100001111 答原创 2012-04-10 15:34:18 · 643 阅读 · 0 评论 -
static linking and dynamic linking
静态链接与动态链接的区别 动态链接库、静态库、import库区别 动态链接库(Dynamic Linked Library): Windows为应用程序提供了丰富的函数调用,这些函数调用都包含在动态链接库中。其中有3个最重要的DLL,Kernel32.dll,它包含用于管理内存、进程和线程的各个函数; User32.dll,它包含用于执行用户界面任务(如窗口的创建和消息的传转载 2012-10-29 00:59:04 · 1477 阅读 · 0 评论 -
Big-Endian和little-Endian
song add: 网络直接绪是和Big-Endian是一个顺序,也就是说首先传递的是高字节,我们接收到的也是高字节,Big-Edian我们的计算机在取值的时候从从底地址区的,首先取到的也是高字节。 big-Endian和Little-Endian之间的转换可以用,htons,htonl,ntohs ntohl,x86是Little-Endian,所以说是h是host htons:host原创 2012-10-29 00:44:04 · 775 阅读 · 0 评论 -
C++错误
1 :previous definition of ‘class friends’ 可能是引用了多个头文件,或者头文件中的预处理没有弄好 2:statement cannot resolve address of overloaded function 可能是函数重载错误 3:Multiple markers at this line - Symbol 'cout' coul原创 2012-04-06 17:02:57 · 3197 阅读 · 0 评论 -
c 内存分配
c 内存分配 1、程序代码区:存放函数体的二进制代码。 2、全局区数据区:全局数据区划分为三个区域。 全局变量和静态变量的存储是放在一块的。初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。常量数据存放在另一个区域里。这些数据在程序结束后由系统释放。我们所说的BSS段(bss segment)通常是指用来存放程序中未初始化的转载 2012-09-13 11:07:53 · 1125 阅读 · 0 评论 -
C++复制构造函数
C++复制构造函数,一般在一下几种情况中出现 1:对象以值传递的方式传入函数时 2:对象以值传递的的方式从函数返回 3:一个对象通过另一个对象初始化 4:数组:根据数组中的初始化列表初始化数组的时候。 5:容器:初始化顺序容器中的元素 有3种情况必须使用复制构造函数: A:如果有数据成员是指针 B:要在构造函数中分配其它资源 C:在创建对象是必须做一些另外的工作 对3进行一原创 2012-04-10 13:26:26 · 1223 阅读 · 0 评论 -
(int agrc,const char* const* argv)为参数的函数
在NS2代码库中,经常看到以(int agrc,const char* const* argv)为参数的函数。 按照下面转载中提及的 读法,应读为 argv is (a pointer to (a const pointer ( to a const char))). argv其实就是个二级指针(即是指向指针的指针),第一个const修鉓是表示argv指向的指针指向了一个常量,不能修改;第二个原创 2012-02-10 14:24:05 · 3358 阅读 · 1 评论 -
C++內存分配
C++中,内存分为5个区: 1.堆、 2.栈、 3.自由存储区 4.全局/静态存储区和 5.常量存储区。 栈:是由编译器在需要时自动分配,不需要时自动清除的变量存储区。通常存放局部变量、函数参数等。 堆:是由new分配的内存块,由程序员释放(编译器不管),一般一个new与一个delete对应,一个new[]与一个delete[]对应。如果程序员没有释放转载 2011-12-05 00:27:03 · 952 阅读 · 0 评论 -
GCC扩展 __attribute__ ((visibility("hidden")))
http://liulixiaoyao.blog.51cto.com/1361095/814329转载 2015-02-25 12:54:09 · 2794 阅读 · 0 评论