C函式形參裡的const char作為返回值問題

時間 2022-03-15 08:20:10

1樓:匿名使用者

形參是char *型別,實參是cons chart *型別時,編譯程式會給出錯誤資訊,意思是被調函式可以改變串的內容,而實參又是const型別,這樣的實參不允許改變,二者之間不能融合,即使函式不改變形參的內容也不行。

但形參是const char *,實參是 char *是可行的,當要返回形參指標時,其返回型別必須是const char *。

yes.

press any key to continue#include

#include

const char *strfind(const char *str,const char *substr)

if(j == n)

}return null;

}int main()

2樓:投機士

第乙個函式,因為傳入的變數是乙個常量不能被修改,而引數是可以修改的,所以報錯。

第二個函式,因為參數列身表明不可修改,所以變數是不是變數就無所謂了,都不會被修改。不會報錯。

這實際上和普通的思維邏輯是一致的。

c++ 函式引數部分裡的 const 修飾是什麼意義?

3樓:匿名使用者

不需要,只有在返回型別是指標或者引用型別的時候才有意義,表示不允許通過這個返回的指標或者返回的引用去修改資料。

有時候也用於返回型別是自定義型別的情況,不允許對返回值再直接賦值,但這種用法只在理論上有意義。

另外,團idc網上有許多產品**,便宜有口碑

4樓:匿名使用者

防止函式內部改變傳入位址引數指向的內容

5樓:匿名使用者

c++ 函式引數部分裡的 const 修飾使用來 限定函式的傳遞值引數:

比如說:void function(const int var); 中

const限定傳遞過來的引數在函式內不可以改變,也就是說不能在函式內對var進行修改,但是可以取它的值進行使用。

const 限定符,它把乙個物件轉換成乙個常量。const與define。兩者都可以用來定義常量,但是const定義時,定義了常量的型別,所以更精確一些。

#define只是簡單的文字替換,除了可以定義常量外,還可以用來定義一些簡單的函式,有點類似內聯函式(inline)。const和define定義的常量可以放在標頭檔案裡面。(小注:

可以多次宣告,但只能定義一次)

6樓:孤松獨海

確保是常數型別,防止在函式裡面修改了呼叫者

7樓:匿名使用者

定義為常量 也就是不能改變量值

c語言函式中的引數有const的問題,具體**如下

8樓:漠影歌

首先,你得先區分const char* a和char* const a的區別。

乙個是把指標定為const 。就是不能修改指標。也就是char * const p

乙個是把指標指向的內容定為const 。就是不能修改指標指向的內容 也就是const char *p

在這裡,const char* strsrc表示的是不能修改指標指向的內容,但是對於*strdest++=*strsrc++;

只是在修改指標strsrc的指向,所以是可以成立並且執行的,不明白繼續追問

9樓:匿名使用者

我不是大師,我可以答麼?

c語言程式設計,編寫函式,根據形參x和y的關係,返回不同的值

聽不清啊 include int cmp int x,int y scanf d d a,b c cmp a,b printf d c d n a,s c 1 b return 0 如下 include include int func int x,int y else if x y else in...

在C語言中,函式實參與形參之間的資料傳遞方式是傳遞方式

八零後電影院 函式實參與形參之間的資料傳遞方式是 值傳遞 傳遞方式,在c語言中,資料傳遞方式有值傳遞和引用傳遞,值傳遞 傳值,實際是把實參的值賦值給行參,相當於copy。傳值呼叫中,只使用了實參的值。傳值呼叫機制裡,形參是乙個區域性變數,其初始值為相應實參的值。在引用呼叫機制裡,將實參的位址傳遞給形...

形參和實參的區別是什麼,c語言中形參和實參是什麼意思?有什麼區別?

淳于長順印黛 實參是用來填充形參的。當函式被呼叫時,形參列在函式名後面的括號裡。執行函式呼叫時,實參被傳遞給形參。1 形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只在函式內部有效。函式呼叫結束返回主呼叫函式後則不能再使用該形參變數。2 實參可以是常量 ...