int* 与 int *
int* a, b, c; 的实际含义是:创建一个int型指针a和两个int型变量b,c。
int *a, *b, *c;的意思是:创建三个int型指针 a,b,c
int *a, b, c;的意思和 第一个相同
建议不要使用第一种
函数 &传递
void m(int &k){ //这里的k和n指向的内存一样 并没有复制n的值存在新地方
k = 10;
}
int main(){
int n = 5;
m(n);
cout<<n; //n=10
return 0;
}
二叉搜索树的插入
#include<bits/stdc++.h>
using namespace std;
int ans = 0;
struct BSTNode{
BSTNode* lchild;
BSTNode* rchild;
int data;
};
int insert(int k,BSTNode* &T){ //注意这里是&
if(T==NULL){
T = (BSTNode*)malloc(sizeof (BSTNode));//修改数据也会改变T->left或者T->right
T->rchild = T->lchild =NULL;
T->data = k;
return 1;
}
if(T->data==k) return 0;
if(k<T->data) return insert(k,T->lchild);
else return insert(k,T->rchild);
}
void inorder(BSTNode* T){
if(T==NULL) return;
inorder(T->lchild);
cout<<T->data<<" ";
inorder(T->rchild);
}
int main(){
BSTNode* root = NULL;//分配一块空间存指针类型
insert(5,root);
insert(3,root);
insert(1,root);
insert(6,root);
insert(7,root);
inorder(root);
return 0;
}
标签:insert,BSTNode,语言,int,基础,return,NULL,root
From: https://www.cnblogs.com/cyfuture/p/16600605.html