亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問,給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 關注
  • 350 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號