最近开始研究考研的代码,写函数的时候发现跟实际自己以往写程序的时候不同,多了一个&。
才发现原来自己以前为了不去区分指针的地址和数据的关系,还有在函数之间的传递。
导致现在已经不会使用指针了,做题全靠全局变量。
但是现在时代变了,很多面试和考研些东西的都是都是要用指针的。
所以复习了一下。本人不建议看别人写的理论来区别指针,因为本来就很难区分。
可以自己哪里不懂先试试,然后再去看。
邓爷爷说过,实践是检验真理的唯一标准。
所以,上代码。
#include<iostream>
#include<stdlib.h>
using namespace std;
struct BiTree{
int data;
struct BiTree *left,*right;
};
void wdnmd(int &x,int y){//此时传过来&的时候 他是在内存上做修改 可以简单理解为全局变量 只是单纯的数那就是表面意义上的修改
x=5;
y=5;
}
void wdnmd_xing(int &p){
p = 20;
}
//上下相比较 可以知道 这个p并没啥卵用 只要 加上& 就可以操作内存数据
void wdnmd_wuxing(int p){
p = 50;
}
struct BiTree *CreatBitree(struct BiTree *(&T),int x){//只有*(&T) 可以通过编辑 以实说明T指向数据的类型是BItree 然后呢&告诉电脑我是在操作内存数据
T = (struct BiTree *)malloc(sizeof(struct BiTree));
T->left = NULL;
T->right = NULL;