我是靠谱客的博主 糊涂钢铁侠,最近开发中收集的这篇文章主要介绍指针的一些总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

2016年9月14日:

  1. 指针数组和数组指针
    指针数组是指:数组元素都是指针
    int *ptr[5]; 
    int a = 2, b = 3, c = 6,*p, *q;
    p = &a;
    q = &b;
    ptr[0] = &a;//存入的是a的地址
    ptr[1] = &b;
    ptr[2] = &c;
    cout <<"ptr[0] "<< *ptr[0] << endl;
    cout << "ptr[1] "<<*ptr[1] << endl;
    cout << "ptr[2] "<<*ptr[2] << endl;
    cout << "p "<<p << endl;
    cout << "q "<<q << endl;

数组指针是指:指向数组的指针

int test[3][2] = { 1, 2, 3, 4, 5, 6 };
    int(*ptr)[2];
    ptr = &test[0];
    cout << (*ptr)[0] << (*ptr)[1] << (*ptr)[2] << endl;

与函数指针一样,,用指针代替 标签(函数名,数组名)
2. 空指针和迷途指针
空指针:是指指针指向的地址为空
迷途指针:是指 释放内存以后的指针,此时指针虽然任然指向该内存地址,但是该内存或许分配给其它变量,称它是迷途的、悬浮的。

此时应该 对该指针赋空值。 不然会导致程序崩溃(使用时)
注:使用空指针也会崩溃,但是是可预测的
3. C++有了malloc/free 为什么还用new/delete
malloc/free是C++标准库函数,而new/delete是运算符,对象在产生时会自动执行构造函数,对象消亡时会自动执行析构函数,由于malloc是标准库函数,不在编译器控制范围内,因此还要用到new/delete运算符。
4. 句柄和指针有什么不同
指针标记某个物理内存地址。
句柄:在windows系统中,句柄用来标记系统资源,隐藏系统信息。
windows经常在内存中来回移动对象来满足应用程序需要,因此对象地址会来回变更,所以windows会专门开辟一块固定内存(句柄地址),来存储对象新变化得地址,即句柄是指向指针的指针。(一个内存地址存放另一个对象的内存地址)
5.

最后

以上就是糊涂钢铁侠为你收集整理的指针的一些总结的全部内容,希望文章能够帮你解决指针的一些总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部