指针
文章平均质量分 92
字子昂
这个作者很懒,什么都没留下…
展开
-
指针与内存分配
1. 指针很灵活,这使得指针很难管理,在定义指针时,将在栈中开辟一块内存存放指针的地址(栈内的内存由系统分配和释放),指针的地址内存只是存放指针的地址,不存放指针指向的数据,值得注意的是,定义指针时指针会随机指向一块内存,如int *p;p会指向一块不为空的内存,相当危险,例如执行判断if(!p){ printf("p为空");};这里不会输出"p为空";所以在定义时想让指针p为空,则要int转载 2014-01-20 21:25:38 · 655 阅读 · 0 评论 -
多态
多态性( polymorphisn )是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。实现多态,有二种方式,覆盖,重载。覆盖,是指子类重新定义父类的虚函数的做法。重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参转载 2014-07-08 16:22:57 · 782 阅读 · 0 评论 -
C++重载 虚函数 纯虚函数 多态性
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定转载 2014-04-18 16:00:41 · 3017 阅读 · 0 评论 -
C++指针、数组、引用、变量作函数参数
指针是一个变量,变量里面存储了一个地址。 数组的本质是一个指针,该指针指向一段连续内存的首地址。 C语言本身没有引用,但可以用指针操作来实现。 假设int a = 1; int b = a;这样的是赋值操作 b 的值被福成了a的值,a和b是独立的变量 但 int a = 1; int *p = &a;这样的话&a 和 p指向通一个内存,那么a的值 发生变化的时候 *p也会发生变化,这就起到了引转载 2014-04-03 17:20:58 · 891 阅读 · 0 评论 -
strcpy函数分析
strcpy函数实现strcpy 看似是标准函数库里面最简单的函数了,谁都可以实现这个函数, 但是,并不一定谁都能实现的很好。林锐博士面试微软的时候,就做这个题目。 他也没有把这个题目完全的做对。建议你自己先动手写一个自己的,不要先看 答案。估计有 90%的人写出来的,达不到性能的要求。 标准答案是这样的: static c转载 2014-04-17 19:31:10 · 1016 阅读 · 1 评论 -
几个重要库函数的实现-strcpy,strncpy,memcpy,memset
面试官很喜欢让求职者写一些常用库函数的实现,有很多是和字符串相关的,有一些是关于内存拷贝的。一般,常会让写的函数有以下几个:strcpy , strncpy, memcpy。memset一般不会让去写,但这个函数也很有特点,有很多容易用错的地方。一并总结吧。1. strcpystrcpy函数的原型是:char * strcpy(char* dest, co转载 2014-04-17 19:44:04 · 945 阅读 · 0 评论 -
关于函数返回值为指针类型的分析
先看一个例子,这是初学者经常遇到的问题char *GetString(void){ char p[] = "hello world"; return p; //编译器一般将提出警告信息}void main(void){ char *str = NULL; str = GetString(); //str 的内容是垃圾,得不转载 2014-04-17 15:20:12 · 927 阅读 · 0 评论 -
指针与地址
每一位学C语言的同僚都知道,指针在C中占有非常重要的角色,没有掌握指针就相当于没有掌握C语言的精华.但是,指针对很多刚学C的人来说,有相当的难理解,因为他的使用很灵活,所以很容易运用混淆.我在学习的过程中也遇到很多类似的问题.以下是我的一点点体会: 指针就是变量的内存地址,用一个变量来专门存放另一个变量的地址(指针)时就称这个变量为指针变量,指针变量的定义方式为:基类型 *指转载 2014-01-20 21:26:49 · 625 阅读 · 0 评论 -
malloc和new的区别与联系
1.malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存2.对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于转载 2014-01-20 21:22:25 · 592 阅读 · 0 评论 -
指针与数组 内存分配
char *a = "hello world";首先,操作系统在编译器规划内存方案中的的文字常量区分配一段内存,存储"hello world"字符串,然后在栈区分配一个内存,存储"hello world"字符串所在内存的首地址。 char b[] = "hello world";操作系统在编译器规划的内存方案中的栈区分配一段连续内存空间(12个字节),存储"hello world"字符串。转载 2014-01-20 21:29:42 · 873 阅读 · 1 评论 -
sizeof strlen 区别与联系
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所转载 2014-01-20 11:42:52 · 606 阅读 · 0 评论 -
指针的大小
指针的大小是问:一个指针变量占用多少内存空间? 分析:既然指针只是要存储另一个变量的地址,。注意,是存放一变量的地址,而不是存放一个变量本身,所以,不管指针指向什么类型的变量,它的大小总是固定的:只要能放得下一个地址就行!(这是一间只有烟盒大小的“房间”,因为它只需要入一张写着地址的纸条)。 存放一个地址需要几个字节?答案是和一个 int 类型的大小相同:4字节。 所以,若转载 2014-01-20 11:26:41 · 618 阅读 · 0 评论 -
函数指针
typedef int (*SERVER_PACKET_HANDLER)(CSession* session,char* packet); //定义一个返回int类型的函数指针,参数为原创 2014-10-28 22:17:10 · 537 阅读 · 0 评论