关于C++函数参数调用的问题

问题描述

关于C++函数参数调用的问题

最近几天都在学习数据结构呀~学习的过程中发现一个小小的问题,虽然放置不管也没有什么关系……但是如果以后因为这些问题酿了大祸就不好了!所以借着这种未雨绸缪(伪)的精神,决定把问题po出来。

此前在下是查过书,查过百度谷歌的,但是找不到很满意的解答(大概是因为这个问题太具体了……),所以把琐碎问题在此提出来。能够回答这细枝末节的高手们,在下十分感激!

问题如下:

如上图所示,我构建了一个结构体叫BiTNode,用来构建二叉树的节点的。接下来我也是在main函数里面使用了它说明了一个叫BiTree的变量,如下图所示

之后我也在一个函数里调用了这个BiTree变量,就是下图这样

之后我就开始学习图了,同样的,我构建了一个结构体,并且说明了一个变量叫G,还在一个函数里面调用了这个变量,po图!

列表">

那么我的问题来了:为什么用同样方法构建结构体,同样方法说明变量,但是为什么在调用变量的时候,二叉树的就不用加指针说明符(就是那个星号),而图就需要呢?



以上,十分感谢。

解决方案

C++中关于二维数组作为函数参数传递的问题
C++中关于二维数组作为函数参数传递的问题
C/C++二维数组作为函数参数传递

解决方案二:

这个主要取决于你的两个函数分别是如何处理的,用不用星号是函数的参数以及它内部实现决定的。你要看看这两个函数的实现。

时间: 2025-01-01 06:10:40

关于C++函数参数调用的问题的相关文章

将指向结构体对象的指针作为函数参数,调用p->时调试报错

问题描述 将指向结构体对象的指针作为函数参数,调用p->时调试报错 void deleteelement(linearlist *list, int power) { linearlist *p = list; while (p->power != power && p->next != NULL) //调试时显示错误在这一行 { p = p->next; } if (p->power == power) { linearlist *dele = p; p =

delphi 函数指针 参数-delphi使用函数指针调用函数第一个参数不能获取。

问题描述 delphi使用函数指针调用函数第一个参数不能获取. 完整代码如下所示,定义了一个函数指针类型TFunctiontest = function (const a:integer; const b:integer; const c:integer): integer; 然后定义了一个指针变量.再定义了一个函数function functiona(const a :integer; const b:integer;const c:integer):integer;并将该函数的地址赋值给函数

python 函数 argparse 使用 - 针对命令行参数调用 [备忘]

python 具有 argarse 模块, 专门针对命令行下的参数传递 参见执行例子: [root@gd02-zabbix-db-research python_api]# ./app.py usage: ./app.py --help [root@gd02-zabbix-db-research python_api]# ./app.py --help usage: app.py [-h] [-t] [-u] [-s SCHEDULER] [-p PERSISTENT] [-r REALSERV

简单的数组作为函数参数的调用问题

问题描述 简单的数组作为函数参数的调用问题 #includemain(){ int a[10]={1028221641061420}; int n=0; int i; int f(int); while(f(a[])) (此处去除中括号则调试无误,这是为什么?) { n++; for(i=0;i<=9;i++) { if(a[i]%2==1) { a[i]=(a[i]+1)/2; a[i+1]+=(a[i]+1)/2; } else a[i]=a[i]/2; } } printf("&qu

析构函数 类做参数-父类作为函数参数,析构函数的调用问题

问题描述 父类作为函数参数,析构函数的调用问题 #include using namespace std; class A { public: A(){cout<<"A constructorn";} ~A(){cout<<"A destroyn";} }; class B : public A { public: B(){cout<<"B constructorn";} ~B(){cout<<&q

调用C++dll,需要传入一个函数指针,函数参数含有数组指针,用于传回数据,怎么老说我访问内存非法呀.

问题描述 C++dll代码回掉函数类型:voidcallback(BYTE*data,intnlen)//DLL设置回调函数voidSetCallBackFunc(CALL_BACK_FUNCcallback){m_callback=callback;}//dll调用回掉函数向C#传回数据voidStartDll(){BYTEbtData[100];for(bytei=0;i<100;i++){btData[i]=i;}m_callback(btData,100);//将数据通过回掉函数传回C#

为什么link中调用函数参数写少了也不会报错?难道参数写少了也可以调用么?

问题描述 为什么link中调用函数参数写少了也不会报错?难道参数写少了也可以调用么? 为什么link中调用函数参数写少了也不会报错?难道参数写少了也可以调用么? 解决方案 有默认参数这个东东,所以有可能存在参数写少了不会报错:但写多了,是一定会报错的.

shell自定义函数及参数调用解析_linux shell

一.定义函数 复制代码 代码如下: function fname(){statements;} 或 复制代码 代码如下: fname(){statements;} 二.调用函数 只需要使用函数名,即可调用某个函数:$ fname ; #执行函数 可以传递参数给函数,并由脚本进行访问:fname arg1 arg2; # 传递参数 以下是函数fname的定义.在函数fname中,包含了各种访问函数参数的方法. 复制代码 代码如下: fname(){  echo $1, $2; # 访问参数1和参数

javascript中函数作为参数调用的方法_javascript技巧

本文实例讲述了javascript中函数作为参数调用的方法.分享给大家供大家参考.具体分析如下: 先来看示例: function Map(){ var obj = {}; this.put = function(key, value){ obj[key] = value; } this.eachMap = function(fn){ for(var attr in obj){ fn(attr, obj[attr]); } } } var m = new Map(); m.put('01', 'a