1樓:
方便資料帶回,如果是直接int的話在函式內部對資料進行修改以後原資料(即呼叫點處的資料)是沒有變化的,函式能提供給呼叫點的只有一個返回值,而有的時候只有一個返回值是不夠的,所以就需要用指標,在函式內部對資料本身直接修改,才函式結束之後直接這個資料就已經是改過的了,比如strcpy,gets之類的,引數都是指標,gets為例,我們把我們想用來儲存使用者輸入的空間放進去,函式才能對這段空間直接操作,函式結束以後這部分資料就已經在記憶體裡了,但是如果不用指標的話,您打算怎麼只用一個返回值就搞定整個輸入呢?以上內容希望對您可以有所幫助。
2樓:匿名使用者
要分情況來看對於你說的
void ss(char* a);
傳遞指標是因為實際要傳遞的引數可能是一個字串, 而不使用指標則只會傳遞字串的第一個(或是指定位置的一個)字元,
對於void ss(int *arg);// 或其他如 float, double, 或是結構休/類等
這種情況, 往往是希望函式的執行可以影響所傳遞引數的值, 所以將引數所在的地址傳遞過去, 在函式中就會直接修改這個地址的值, 也就是在呼叫函式中的變數的值. 或者也是希望傳遞一個整型陣列
3樓:匿名使用者
提高效率....使用int,系統先把你提供的實參複製一份,然後再把這個副本的值賦給形參。
使用指標可以直接操作實參記憶體,可以直接修改它的值,省去了實參複製的時間成本。。。
c++中什麼情況下要用 指標或者引用做引數 有什麼好處呢?
4樓:匿名使用者
值傳遞的話會複製整個物件,適用於一些小的物件傳遞
指標和引用不會複製物件,適用於大型物件的傳遞
不過是使用值傳遞還是指標傳遞或引用傳遞,還要考慮你的實際情況以及使用的便捷性
c++函式指標作為引數的問題
5樓:匿名使用者
考慮是否宣告瞭其他reverse函式,或者意外把其他名稱空間的 reverse 函式(例如 std::reverse )引入當前名稱空間……
c++ 函式指標引數的問題
6樓:
解決方法很多,其實需要看你到底想要封裝什麼:
void transfer( //此函式 結構體內部呼叫也可由外部呼叫。
void(*sdmsg)(u8) , //第一個引數是指標型別
msgtype *msg, //
u8 len);
這個介面的引數為函式指標,是為了更好的擴充套件函式對麼?
如果是為了擴充套件,可以將sendmessage方法變成一個函式,在引數中指定msgrsvbuffer;
另外,如果使用c++,直接將sendmessage定義為介面或者虛擬函式,使用繼承的方法重寫該函式也是可行的,這樣正好對應了模板方法的設計模式。
7樓:海賊
看的不太懂,不知道行不行,你可以嘗試著把void(*sdmsg)(u8)定義成友元函式,這樣裡外都可以用了
不行就算了額,呵呵
c++問題,虛擬型別引數是什麼?
8樓:匿名使用者
什麼叫虛擬型別引數,只聽過虛擬函式...
莫非是類别範本?
關於c++類的指標作為函式的引數問題
9樓:感冒九十九
你應該把源**的檔案形式發上來,最好發宣告,定義就不用了。
可能你遇到的問題是 名字衝突問題
你問題描述的太模糊了
10樓:匿名使用者
你的plane.h加沒加這種**:
#ifndef plan_h
#define plan_h
...#endif
另外定義class別忘了寫最後的分號
class plane ;
11樓:匿名使用者
在定義函式todestory的檔案中包含類plane的標頭檔案。
12樓:吃瓜群眾蔣先生丶
plane類定義之後,是不是沒有例項化?函式引數需傳入一個已經存在的物件
13樓:匿名使用者
加一個#include語句。
那你的plane.h裡有沒有include plane.cpp啊?
關於汽車引數的問題,關於汽車引數的一個問題!!!!
最大功率 kw 110 最大功率轉速 6500 是指最高在6500轉,才會發出最大動力,指的是最高檔,而不是任意檔位 8000轉?根據你引數應該是2.0左右的車轉到8000?你的車不要了?還是要報廢啊,儘量不要要轉速超過紅線太多,6500轉到紅線,你就最遲到7000換擋,這樣還是對機頭很大傷害的,發...
關於c語言中陣列名作為引數傳遞的問題
陣列名作為引數就退化 為指標.所以在你的sizeofmat中,sizeof x 就值就是sizeof一個指標的值.因為指標就是地址,陣列名也是地址.所以你陣列名作為引數的時候,是不會傳遞整個陣列的,而是傳遞了一個地址,就是指標.sizeofmat的引數錯誤 必須是陣列型別 sizof x 才能將其視...
C什麼是引數陣列,C 什麼是函式的引數陣列?
c 語言規範 10.5.1.4 引數陣列 用 params 修飾符宣告的引數是引數陣列。如果形參表包含一個引數陣列,則該引數陣列必須位於該列表的最後而且它必須是一維陣列型別。例如,型別 string 和 string 可用作引數陣列的型別,但是型別 string 不能。不可能將 params 修飾符...