关于指针。。

指针这个东西上课没认真听,有没有大佬能给我讲解下

2 个赞

我感觉指针没啥用(除了链表)

3 个赞

指针的基本概念

指针的作用:可以通过指针间接访问内存

  • 内存编号是从0开始记录的,一般用十六进制数字表示
  • 可以利用指针变量保存地址
2 个赞

代码示例:

//1、定义一个指针
//指针定义的语法:数据类型*指针变量名
int a = 10;
int *p;
//让指针记录变量a的地址
p = &a;//或者直接int *p=&a;

cout << "a的地址为:" << p << endl;
//2、使用指针
//可以通过解引用的方式来找到指针指向的内存
//指针前加*代表解引用,找到指针指向的内存中的数据
*p = 1000;
cout << "a=" << *p << endl;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

运行结果:

a的地址为:00F6FC7C
a=1000

麻烦给个解决方案呗 @叶博远

2 个赞

函数传参时更快,并且能真正修改所传的变量,比如:

void Swap(FibNode* x,FibNode* y)
{
    FibNode* tmp;
    x=y;
    y=tmp;
}

指针可以用于动态内存分配,比如

FibNode* x=new FibNode;

指针可以指向一个数组,也有所谓的“二维指针”“三维指针”
比如

char **array;

等等

c/c++中,很多数据结构需要使用指针
以斐波那契堆为范例

struct FibNode
{
    bool mark;
    int key;
    int degree;
    FibNode* parent;  FibNode* child;
    FibNode* left;    FibNode* right;
};

class FibHeap
{
public:
    void FibHeap_Union(FibHeap* FH2);
    void FibHeap_ExtractMin();
    void ConSolidate();
    //etc
private:
    int n;
    int MaxDegree;
    FibNode* min; //.........     随手在xyd的md编辑器里写的,连IDE都没打开,不知道过得过不了编译,就当个乐子看
};

我也不知道我说的对不对,而且还有很多有关于指针的知识
所以
赶紧
第五人格,启动!!!