日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言 const 修饰函数返回值 - C语言零基础入门教程

發(fā)布時(shí)間:2024/9/27 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言 const 修饰函数返回值 - C语言零基础入门教程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 一.const 簡(jiǎn)介
    • 1.const 修飾變量
    • 2.const 修飾指針
  • 二.const 修飾在函數(shù)名前面
  • 三.const 修飾在函數(shù)名后面
  • 四.猜你喜歡

零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C 語言基礎(chǔ)入門

一.const 簡(jiǎn)介

const 是 constant 的縮寫,“恒定不變”的意思。被 const 修飾的東西都受到強(qiáng)制保護(hù),可以預(yù)防意外的變動(dòng),能提高程序的健壯性。所以很多 C++ 程序設(shè)計(jì)書籍建議:“Use const whenever you need”。

1.const 修飾變量

/******************************************************************************************/ //@Author:猿說編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語言教程 - C語言 const 修飾函數(shù) //@Time:2021/07/04 08:00 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************/#include <stdio.h>int main() {const int a = 20 ;printf("a = %d\n",a);a = 200 ;printf("a = %d\n",a);return 0; }/*輸出:Compilation Failederror: assignment of read-only variable 'a'6 | a = 200 ;| ~~^~~~~*/

用 const 定義的變量的值是不允許改變的,即不允許給它重新賦值,即使是賦相同的值也不可以。并且 const 修飾的變量在定義的時(shí)候就給它賦初值,否則報(bào)錯(cuò)

error: uninitialized 'const ' [-fpermissive]

詳細(xì)解釋可以直接跳轉(zhuǎn):const 修飾變量;

2.const 修飾指針

/******************************************************************************************/ //@Author:猿說編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語言教程 - C語言 const 修飾函數(shù) //@Time:2021/07/04 08:00 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************///以下兩者等價(jià),表示 *p 不可變。*p 表示的是指針變量 p 所指向的內(nèi)存單元里面的內(nèi)容,此時(shí)這個(gè)內(nèi)容不可變; const int *p int const *p//此時(shí) const 修飾的是 p,所以 p 中存放的內(nèi)存單元的地址不可變,而內(nèi)存單元中的內(nèi)容可變。即 p 的指向不可變,p 所指向的內(nèi)存單元的內(nèi)容可變; int * const p//*p 和 p 都被修飾了,那么 p 中存放的內(nèi)存單元的地址和內(nèi)存單元中的內(nèi)容都不可變; const int * const p

詳細(xì)解釋可以直接跳轉(zhuǎn):const 修飾指針;

二.const 修飾在函數(shù)名前面

當(dāng) const 在函數(shù)名前面的時(shí)候修飾的是函數(shù)返回值;在函數(shù)名后面表示是 C++ 常成員函數(shù),該函數(shù)不能修改對(duì)象內(nèi)的任何成員,只能發(fā)生讀操作,不能發(fā)生寫操作。

const char * GetString(void); const int GetInt(void); const float GetFloat(void); const double GetDdouble(void);

如果給以“指針傳遞”方式的函數(shù)返回值加 const 修飾,那么函數(shù)返回值(即指針)的內(nèi)容不能被修改,該返回值只能被賦給加 const 修飾的同類型指針;

const char * GetString(void);//如下語句將出現(xiàn)編譯錯(cuò)誤: //char *str = GetString();//正確的用法是 const char *str = GetString();

如果函數(shù)返回值采用“值傳遞方式”,由于函數(shù)會(huì)把返回值復(fù)制到外部臨時(shí)的存儲(chǔ)單元中,加 const 修飾沒有任何價(jià)值。

int GetInt(void);const int GetInt(void);

以上兩個(gè)函數(shù)都是都是獨(dú)立存在的,并非同一個(gè)函數(shù);

三.const 修飾在函數(shù)名后面

當(dāng) const 在函數(shù)名前面的時(shí)候修飾的是函數(shù)返回值;在函數(shù)名后面表示是 C++ 常成員函數(shù),該函數(shù)不能修改對(duì)象內(nèi)的任何成員,只能發(fā)生讀操作,不能發(fā)生寫操作。

/******************************************************************************************/ //@Author:猿說編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語言教程 - C語言 const 修飾函數(shù) //@Time:2021/07/04 08:00 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************/class People {public:int talk(void);int eat(void) const; // const 成員函數(shù)private:int m_age;}; int People::eat(void) const {++m_age; // 編譯錯(cuò)誤,企圖修改數(shù)據(jù)成員m_numtalk(); // 編譯錯(cuò)誤,企圖調(diào)用非const函數(shù)return m_age; }
  • const 對(duì)象只能訪問 const 成員函數(shù),而非 const 對(duì)象可以訪問任意的成員函數(shù),包括 const 成員函數(shù).
  • const 對(duì)象的成員是不可修改的,然而 const 對(duì)象通過指針維護(hù)的對(duì)象卻是可以修改的.
  • const 成員函數(shù)不可以修改對(duì)象的數(shù)據(jù),不管對(duì)象是否具有 const 性質(zhì).它在編譯時(shí),以是否修改成員數(shù)據(jù)為依據(jù),進(jìn)行檢查.
  • 然而加上 mutable 修飾符的數(shù)據(jù)成員,對(duì)于任何情況下通過任何手段都可修改,自然此時(shí)的 const 成員函數(shù)是可以修改它的

四.猜你喜歡

  • C 語言 數(shù)組下標(biāo)越界和內(nèi)存溢出區(qū)別
  • C 語言 指針聲明和定義
  • C 語言 指針 p++ / p–
  • C 語言 p++/§++/_(p++)/_p++
  • C 語言 使用指針遍歷數(shù)組
  • C 語言 指針和數(shù)組區(qū)別
  • C 語言 指針數(shù)組和數(shù)組指針區(qū)別
  • C 語言 空指針 NULL
  • C 語言 void 指針
  • C 語言 野指針
  • C 語言 函數(shù)值傳遞和址傳遞
  • C 語言 函數(shù)缺省參數(shù)
  • C 語言 函數(shù)不定長(zhǎng)參數(shù)
  • C 語言 函數(shù)指針
  • C 語言 指針函數(shù)
  • C 語言 回調(diào)函數(shù) callback
  • C 語言 typedef
  • C 語言 define 定義常量
  • C 語言 define 防止頭文件重復(fù)包含
  • C 語言 #pragma once
  • C 語言 #include <> 與 #include “” 區(qū)別
  • C 語言 const 修飾變量
  • C 語言 const 修飾指針
  • C語言 const 修飾函數(shù)
  • 未經(jīng)允許不得轉(zhuǎn)載:猿說編程 ? C 語言 const 修飾函數(shù)返回值

    總結(jié)

    以上是生活随笔為你收集整理的C语言 const 修饰函数返回值 - C语言零基础入门教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。