上海网站建设shzanen,美食网站的建设开题报告,开发小程序需要多少钱费用,可以自己买个服务器做网站吗为什么打印root的值与root-value的值是一样的呢 测试结果#xff1a; *号一个变量到底取出来的是什么#xff1f; 以前我写过一句话#xff0c;就是说#xff0c;如果看到一个*变量#xff0c;那就是直逼这个变量所保存的内存地址#xff0c;然后取出里面保存的… 为什么打印root的值与root-value的值是一样的呢 测试结果 *号一个变量到底取出来的是什么 以前我写过一句话就是说如果看到一个*变量那就是直逼这个变量所保存的内存地址然后取出里面保存的对应的值或者地址
那么这句话该怎么来理解可以这样讲 那么像上面打印的结果都是一样的取出来的都是num1的地址
下面上具体的代码说明
#include cstdio
#include cstdlibusing namespace std;int main()
{int num1 3;int *p_num1 num1;int **pp_num1 p_num1;int ***ppp_num1 pp_num1;printf(%d\n,*p_num1);//直逼num1所以打出来是3printf(%d %d\n,*pp_num1,num1);//直逼p_num1取出来就是num1的地址printf(%d %d\n,*ppp_num1,p_num1);//直逼pp_num1,取出来p_num1的地址//第一个*号直逼pp_num1,取出p_num1地址//第二个*号直逼p_num1取出num1的地址printf(%d %d\n,**ppp_num1,num1);//这里有两个**,一个*直逼pp_num1保存的地址就是p_num1取出来是//num1的地址然后再来一个*,直逼num1的地址取出来的就是3printf(%d\n,**pp_num1);return 0;
}
运行结果 ,(*root)-left这个表达式为什么会报错 说这个之前我们先来分析一下下面这些表达式的取值
表达式1printf(%d %d %d %d\n,(*root),root,root-value,root); 表达式2printf(%d %d\n,(*pp_root)-left,root-left); 表达式3 printf(%d %d %d\n,(*pp_root)-left,root-left,child-value); 再来说说,(*root)-left它为什么报错
先来看一张图 再来分析上面首先*root是返回一个node对象本身没有指针引用因此-left编译器是会报错的
既然是返回node对象本身那么就可以用.来进行引用像下面这两个表达式值都是一样的 这也就是它报错的原因 二叉树内存节点分析 好了祝你早安午安晚安。