c语言基础

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;
}
posted @ 2022-08-18 23:58  cyfly  阅读(42)  评论(0)    收藏  举报