欢迎使用CSDN-markdown编辑器

来源:互联网 发布:淘宝弹力椅套 编辑:程序博客网 时间:2024/05/21 07:50

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.

0 0
原创粉丝点击