C++學習隨筆之四:函數—-C++編程模組

來源:互聯網
上載者:User

1.函數原型:函數原型描述了函數到編譯器的介面,也即是說它將函數傳回值的類型以及參數的類型數量告訴編譯器。

2.指標和const:

const用法有兩種:一種是讓指標指向一個常量對象(指標所指的內容是const),另一種是將指標本身聲明為常量(指標為const)。

int age =39;

const int * pt = &age;

int const *pt  與 const int *pt 是完全相同的。

該聲明指出,pt指向一個const int(這裡是39),因此不能用pt來修改這個值,也即是說,*pt的值為const,不能被修改(不能通過*pt修改age的 

值),但是可以通過age修改age的值。

在C++中,禁止將const地址賦給非const指標。如:

const float fg= 1.54;

float *pm= &fg; // 這種賦值是非法的。

而如下賦值是對的:

cosnt float fg=1.54;

const *pm= &fg;

注意:如果資料類型本身並不是指標,則可以將const資料或非const資料的地址賦給指向const的指標,但只能將非cosnt資料的地址賦給非const指標

指標的另一些妙用:

請看下面聲明:

int num=39;

cosnt int * pt=& num;

在上面第二個聲明中,cosnt只能防止修改pt指向的值,而不能防止修改pt的值,也即是說可以將一個新的地址賦給pt:

int age=34;

pt = &age;

但是仍然不能使用pt修改其指向的值。

第二種使用const方式,使得無法修改指標的值:

int sum= 440;

const int * pt =∑

int * const pm = ∑

在上面第三個聲明中,使得pm只能指向sum,但是運行使用pm修改sum的值,第二個聲明不允許使用pt修改sum的值,但運行將pt指向另一個

地址。簡而言之,pm和*pt都是const(常量),而*pm和pt不是。

3. 數組與結構:數組名是地址,而結構名不是,要擷取結構的地址,必須採用取址符&。

4.函數指標:

函數指標聲明:通常要聲明指向特定類型函數的指標,可以首先寫出該函數的原型,然後用(*fp)替換函數名,這樣fp就是這類函數的指標。

例:

double pam (int );

double (*fp)(int );

其中(*fp)必須加括弧,因為括弧的優先順序比*高,故 *fp(int) 意味著fp()是一個返回指標的函數,而(*fp)(int)是一個指向函數的指

針。聲明完後可以把地址賦給指標:fp = pam;

指標函數調用:

在使用函數指標時,只需將其看作函數名,即將(*fp)看作函數名:

double pam(int);

double (*fp)(int);

fp = pam;

double x= pam(4);

double y = (*fp)(5);

    指標函數:是傳回值為指標的函數。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.