
C++
凌枫阁
这个作者很懒,什么都没留下…
展开
-
sizeof的用法
sizeof()功能:计算数据空间的字节数1.与strlen()比较 strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。 而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。2.指针与静态数组的sizeof操作 指针均可看为变量类型的一种。所有指针变量的sizeof 操作结果均为转载 2015-03-24 17:22:39 · 279 阅读 · 0 评论 -
常用数据类型对应字节数
常用数据类型对应字节数 可用如sizeof(char),sizeof(char*)等得出 32位编译器: char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short int : 2个字节 int: 4个字原创 2015-09-05 15:15:47 · 277 阅读 · 0 评论 -
.和->用法上的区别
->是指针指向其成员的运算符.是结构体的成员运算符如:struct A{ int a; int b;};A *point = malloc(sizeof(struct A));point->a = 1;A object;object.a = 1;原创 2015-07-12 14:38:00 · 506 阅读 · 0 评论 -
C++类的前置声明
类前置声明: 只是声明了类 (class QCheckBox;),而不提供类定义。用处1:交叉引用。 类A用了类B,而B又反过来用了A。 事实上我们只能先对一个类进行定义,要么A,要么B。 假设我们先对A进行定义,那么在A中必须使用到B,而此时B还没有定义。 这种情况下,可以对B进行类前置声明,即在定义A之前,声明类B。转载 2015-05-09 00:13:28 · 396 阅读 · 0 评论 -
单链表的C++实现
#includeusing namespace std;struct Node{int Data;Node*next;};class list{Node*head;public:list(){head=NULL;}void insertlist(int aData,int bData);void deletelist(int aD原创 2015-04-10 12:36:53 · 392 阅读 · 0 评论 -
指针详解
指针的概念指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: int *ptr; char *ptr; int **ptr; int (*pt转载 2015-04-09 00:05:47 · 356 阅读 · 0 评论 -
C/C++中函数参数传递详解
首先: c++中参数传递方式:一般来说,C里面有两种传递1、值传递2、指针传递严格来看,只有一种传递,值传递,指针传递也是按值传递的,复制的是地址。C++里面有三种传递方法:1、值传递2、指针传递3、引用传递但是严格来看,是两种,其实指针传递也是值传递,只不过是值传递的是地址。下面是部分转自:http://www.cnbl转载 2015-04-08 23:24:43 · 300 阅读 · 0 评论 -
C/C++编译的程序占用的内存分区
C/C++编译的程序占用的内存分区1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的转载 2015-03-25 16:53:18 · 361 阅读 · 0 评论 -
宏定义
一、#define的基本用法 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。1 #define命令剖析转载 2015-03-24 17:13:14 · 256 阅读 · 0 评论 -
友元函数
关于C++中的友元函数的总结1.友元函数的简单介绍1.1为什么要使用友元函数在实现类之间数据共享时,减少系统开销,提高效率。如果类A中的函数要访问类B中的成员(例如:智能指针类的实现),那么类A中该函数要是类B的友元函数。具体来说:为了使其他类的成员函数直接访问该类的私有变量。即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数。实际上具体大概有转载 2015-04-09 01:40:28 · 366 阅读 · 0 评论 -
C++静态成员和静态成员函数static
数据成员可以分静态变量、非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员. 非成静态员:所有没有加Static的成员都是非静态成员,当类被实例化之后,可以转载 2015-04-09 01:06:41 · 454 阅读 · 0 评论 -
C/C++中extern关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数转载 2015-04-10 09:48:52 · 298 阅读 · 0 评论 -
C++ Virtual详解
Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Derived的print函数而不是Ba转载 2015-03-22 13:31:28 · 238 阅读 · 0 评论 -
字符数组和字符指针
问题1:字符数组名可以作为左值吗?当然不行比如 char str[20] = {'h','e','l','l','o',' ','w','o','r','l','d'};str++;不可以这么干,因为字符数组名是一个常量指针,也就是是一个const char*#include int main(){ char str[20] = {转载 2016-03-04 20:41:16 · 452 阅读 · 0 评论