指针和引用
来源:互联网 发布:数据精灵ios破解版 编辑:程序博客网 时间:2024/06/05 20:31
##########程序员面试宝典############
1 在子函数中分配内存
void GetMemory(char **p,int num){*p=(char*)malloc(sizeof(char)*num);}//用指针参数去申请内存,那么应该采用指向指针的指针,传str的地址给函数GetMemory。char *GetMemory2(char *p,int num){p=(char*)malloc(sizeof(char)*num);return p;}//用函数返回值来传递动态内存2 指针与地址的关系
int main(){int a[3];a[0]=0;a[1]=1;a[2]=2;int *p,*q;p=a;q=&a[2];cout<<p<<endl;cout<<*p<<endl;cout<<q<<endl;cout<<*q<<endl;cout<<a[q-p]<<endl;//指针操作确实是对数据类型为单位的加减cout<<a[*q-*p]<<endl;//输出2return 0;}3 C++的多态
class A{public:void foo(){printf("1\n");}virtual void fun(){printf("2\n");}};class B : public A{public:void foo(){printf("3\n");}void fun(){printf("4\n");}};int main(void){A a;B b;A *p = &a;p->foo(); // 第一个p->foo()和p->fuu()都很好理解,本身是基类指针,指向的又是基类对象,p->fun();//调用的都是基类本身的函数,因此输出结果就是1、2。p = &b;p->foo();//p->foo()由于指针是个基类指针,指向是一个固定偏移量的函数, //因此此时指向的就只能是基类的foo()函数的代码了,因此输出的结果还是1p->fun(); //而p->fun()指针是基类指针,指向的fun是一个虚函数,由于每个虚函数都有一个虚函数列表, //此时p调用fun()并不是直接调用函数,而是通过虚函数列表找到相应的函数的地址,因此根据指向的对象不同,函数地址也将不同, //这里将找到对应的子类的fun()函数的地址,因此输出的结果也会是子类的结果4。return 0;}
0 0
- 指针和指针引用
- 指针和指针引用
- 指针和指针的引用
- 指针和指针的引用
- 指针,和指针的引用
- 指针和指针的引用
- 引用和指针小结
- 指针和引用
- 区分指针和引用
- 指针和引用
- 指针和引用
- 指针和引用
- 指针和引用
- 引用和指针
- 函数指针和引用
- 引用和指针
- 引用和指针
- 引用和指针
- 辛苦的劳动,被遗弃的代码
- C 语 言制定了一套 ANSI 标准
- Windows PHP 环境下 Redis开发环境搭建
- Mysql搭建主从复制
- MFC中文件的读写
- 指针和引用
- Yum安装Apache+PHP+MySQL
- 安卓webview系列(基础)——如何用webview加载网页
- java——TCP和UDP
- 全球IPv4分配表
- iOS应用崩溃日志揭秘2
- [学习小结]Spring对JDBC的支持
- 贺“西南地区中小学校改革创新专题讲座”成功召开[北京]y
- Cocos2d-x win7 + vs2010 配置(如何创建cocos2d-x工程,解决各种头文件包含错误、lib库引用错误 及dll链接错误)