BitTree到底是几级指针?为什么呢?
typedef struct BitNode{int data;
struct BitNode *left, *right;
}BitNode, *BitTree;
一级指针,因为 BitTree 直接指向 BitNode 这个数据结构
一级 有几个*就是几级 人造人 发表于 2021-5-15 22:27
一级指针,因为 BitTree 直接指向 BitNode 这个数据结构
声明一个BitTree指针变量,取地址后为什么是二级指针了呢?
#include <stdio.h>
#include <stdlib.h>
typedef struct BitNode{
int data;
struct BitNode *left, *right;
}BitNode, *BitTree;
void CreateBiTree(BitTree *);
void DisplayBiTree(BitTree *);
int main(void)
{
BitTree tree;
//struct BitNode *tree;
CreateBiTree(&tree);
DisplayBiTree(&tree);
return 0;
}
void CreateBiTree(BitTree *root)
{
int value = 999;
printf("input data value>>[ ]\b\b");
scanf("%d", &value);
if (value == 999)
{
*root = NULL;
} else
{
*root = (BitTree) malloc(sizeof(BitNode));
(*root)->data = value;
CreateBiTree(&(*root)->left);
CreateBiTree(&(*root)->right);
}
} 万千只cnm 发表于 2021-5-16 00:41
一级 有几个*就是几级
声明一个BitTree指针变量,取地址后为什么是二级指针了呢?
#include <stdio.h>
#include <stdlib.h>
typedef struct BitNode{
int data;
struct BitNode *left, *right;
}BitNode, *BitTree;
void CreateBiTree(BitTree *);
void DisplayBiTree(BitTree *);
int main(void)
{
BitTree tree;
//struct BitNode *tree;
CreateBiTree(&tree);
DisplayBiTree(&tree);
return 0;
}
void CreateBiTree(BitTree *root)
{
int value = 999;
printf("input data value>>[ ]\b\b");
scanf("%d", &value);
if (value == 999)
{
*root = NULL;
} else
{
*root = (BitTree) malloc(sizeof(BitNode));
(*root)->data = value;
CreateBiTree(&(*root)->left);
CreateBiTree(&(*root)->right);
}
} Stubborn 发表于 2021-5-16 12:53
声明一个BitTree指针变量,取地址后为什么是二级指针了呢?
指针的地址么,当然就是二级指针了
Stubborn 发表于 2021-5-16 12:55
声明一个BitTree指针变量,取地址后为什么是二级指针了呢?
指针就是地址,*BitTree是一个一级指针,本身就代表一个地址了,然后对地址取地址,就是指针的指针,所以是二级指针 孤世星辰 发表于 2021-5-16 15:25
指针就是地址,*BitTree是一个一级指针,本身就代表一个地址了,然后对地址取地址,就是指针的指针,所以 ...
谢谢大佬
页:
[1]