本文主要是面向C++初学者。
以下是我个人学习的过程中遇到问题后自己总结的经验。如果有什么理解偏差的地方,欢迎大家在下方留言,交流学习。
1.指针*
指针变量实际上存的是另一个变量的地址;
int a = 10;//变量a;
int *Addr_a ;//定义整型指针变量Addr_a;
Addr_a = &a;//将变量a的地址赋值给Addr_a;r_a;
2.引用*&
引用实际上是对变量的原内存地址的内容进行操作。
int a = 10;
int *addr_a;//定义整形指针变量;
addr_a = &a;
*(&addr_a) = 20//对变量a的内存重新进行赋值;引用
3.下面用个例子来比较指针与引用的深刻含义。
先附上例子的原代码。
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <stdlib.h>
using namespace std;
typedef struct LNode
{
int val;
struct LNode *next;
}LNode,*LNodeList;
void changeNode1(LNode*& pL)//引用
{
pL = new LNode;
pL->val = 10;
}
void changeNode2(LNode* pL)//指针
{
pL = new LNode;
pL->val