为了账号安全,请及时绑定邮箱和手机立即绑定

请问,给pnum赋值为num的地址,返回类型为int*吗?

请问,给pnum赋值为num的地址,返回类型为int*吗?

C C++
皈依舞 2022-06-14 15:11:38
#include <iostream>using namespace std;int incr10(int *pnum);int main(void){int num(9);int *pnum = #int result = incr10(pnum);cout << endl << "incr10(num) = " << result << endl<< "num = " << num << endl;system("pause");return 0;}int incr10(int* pnum){*pnum += 10;return *pnum;}请问:1. int *pnum = #这行的意思是:给pnum赋值为num的地址,返回类型为int*吗?2. pnum是一个地址,*pnum是一个值?incr10(pnum)的实参是个地址和int incr10(int* pnum)的形参是个int值对不上号啊,怎么解释?度娘把代码吞了。
查看完整描述

3 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

从你的问题中可以看出你对指针的运用还很模糊。

指针的定义
就像int a为定义一个int类型的变量a.
int * pnum 你这样看 (int *) pnum 代表pnum是一个指向int数据类型的指针。
int *pnum = # //定义一个int类型指针pnum 并把num的地址赋给pnum。

指针的使用
使用时与定义不一样,这时的*不能和定义时的* 混乱为一谈。
* pnum是取该指针指向的数据的值。

int incr10(int* pnum) 这样看 int incr10((int*) pnum)
而不是int incr10(int (* pnum)) 你就很清楚了。
这个函数的参数是int * 所以incr10(pnum)OK。

指针是C语言比较精髓的地方,你现在对指针使用过程中有很多还不是很清楚。
仔细看一下书,仔细。多看,多写,多想,会有很多收获的

曾经的我就是这么过来的。

查看完整回答
反对 回复 2022-06-20
?
杨魅力

TA贡献1811条经验 获得超6个赞

BaseEllipse(double x0=0,double y0=0):x(x0),y(y0){}就是这个类的构造函数,冒号后面的是类成员的初始式。如果类成员中有类对象,则在冒号后面可以一个一个地调用类对象的构造函数。
1 对于double这种类型,可以选择使用初始式(就是上面的方法)或者使用赋值(就是在函数体里 面对 x y 进行赋值);
2 但是前者的方式(冒号后面跟初始式)对于
a 没有默认构造函数的对象
b const成员和引用成员
是必不可少的。
3 使用初始式除了可以使得初始化的情况更加明显,有时候还可能带来效率上的优势,例如要初始化的对象是string的时候。


查看完整回答
反对 回复 2022-06-20
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

int *pnum = &num 就是取num地址给pnum
nt incr10(int* pnum)的形参不是int,而是int*,是个地址

查看完整回答
反对 回复 2022-06-20
  • 3 回答
  • 0 关注
  • 358 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号