欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ const關鍵字分析詳解

 更新時間:2021年08月31日 18:02:52   作者:丁丁逗  
C++中的const關鍵字的用法非常靈活,而使用const將大大改善程序的健壯性。這篇文章主要介紹了C/C++ 中const關鍵字的用法,需要的朋友可以參考下

C語言中修飾變量

在C語言中,被const修飾的是一個不能被修改的變量。

C語言中修飾指針變量

#include <stdio.h>
//代碼1
void test1()
{
	int n = 10;
	int m = 20;
	int *p = &n;
	*p = 20;//ok
	p = &m; //ok
}
void test2()
{
	//代碼2
	int n = 10;
	int m = 20;
	const int* p = &n;
	*p = 20;//err
	p = &m; //ok
}
void test3()
{
	int n = 10;
	int m = 20;
	int *const p = &n;
	*p = 20; //ok
	p = &m; //err
}
int main()
{
	//測試無cosnt的
	test1();
	//測試const放在*的左邊
	test2();
	//測試const放在*的右邊
	test3();
	return 0;
}

結論:

1.const如果放在*的左邊,修飾的是指針指向的內容,保證指針指向的內容不能通過指針來改
變。但是指針變量本身的內容可變。

2.const如果放在*的右邊,修飾的是指針變量本身,保證了指針變量的內容不能修改,但是指
針指向的內容,可以通過指針改變。

C語言中修飾函數(shù)的參數(shù)

C語言中修飾函數(shù)的返回值

C++中修飾變量

在C++中,被const修飾的已經是一個常量,而且具有宏替換的屬性。

void TestConst()
{
    const int a = 10; 
    int*pa =(int*)&a;
    *pa = 100;
    cout<<a<<endl;//10
    //但是a的值已經是100原因:在編譯階段,編譯器已經將a用10替換了 
    cout <<*pa <<endl; // 100
}

const修飾的常量的替換發(fā)生在編譯階段,會參與參數(shù)類型檢測,代碼的安全性更高。
建議:在C++中使用const修飾的常量代替宏常量。

C++中修飾函數(shù)的參數(shù)

結論:修飾的是形參,表明在函數(shù)中不能對形參進行修改。

C++中修飾函數(shù)的返回值

結論:表明返回值不能修改,即在外部接收返回值時,只能以const類型的指針接受。

C++中修飾類的成員函數(shù)

結論:本質是在修飾成員函數(shù)的this指針,即this指針指向對象中的內容就不能被修改。

C++中修飾類的成員變量

結論:該成員變量不能修改,而且必須要在構造函數(shù)初始化列表的位置訪問。

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • C/C++實現(xiàn)通訊錄管理系統(tǒng)(附源碼)

    C/C++實現(xiàn)通訊錄管理系統(tǒng)(附源碼)

    這篇文章主要為大家詳細介紹了如何利用C++實現(xiàn)通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-12-12
  • C語言實現(xiàn)病例管理系統(tǒng)

    C語言實現(xiàn)病例管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)病例管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • c++ 函數(shù)指針相關總結

    c++ 函數(shù)指針相關總結

    這篇文章主要介紹了c++ 函數(shù)指針的相關資料,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下
    2021-02-02
  • 一文讀懂c++11 Lambda表達式

    一文讀懂c++11 Lambda表達式

    這篇文章主要介紹了c++11 Lambda表達式的相關資料,幫助大家更好的理解和學習C++,感興趣的朋友可以了解下
    2020-08-08
  • C++ OpenCV實現(xiàn)像素畫的示例代碼

    C++ OpenCV實現(xiàn)像素畫的示例代碼

    這篇文章主要介紹了通過OpenCV進行圖片像素的變化,從而形成像素畫效果的功能。文中的示例代碼講解詳細,感興趣的小伙伴可以動手試一試
    2022-01-01
  • C語言封裝函數(shù)字符串練習匯總分享

    C語言封裝函數(shù)字符串練習匯總分享

    這篇文章主要介紹了C語言封裝函數(shù)字符串練習匯總分享,分享內容有字符串查找、字符串拼接、字符串轉整數(shù)等內容,需要而小伙伴可以參考一下
    2022-03-03
  • C++遍歷文件夾下文件的方法

    C++遍歷文件夾下文件的方法

    這篇文章主要介紹了C++遍歷文件夾下文件的方法,實例分析了C++針對文件夾遍歷的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 對C語言編程標準以及聲明的基本理解

    對C語言編程標準以及聲明的基本理解

    這篇文章主要介紹了對C語言編程標準以及聲明的基本理解,有助于對C語言編寫時的結構有更加清晰的認識,需要的朋友可以參考下
    2015-11-11
  • 在C++中關于友元函數(shù)的進一步理解

    在C++中關于友元函數(shù)的進一步理解

    今天小編就為大家分享一篇關于在C++中關于友元函數(shù)的進一步理解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C++ Boost Bind庫示例分析使用

    C++ Boost Bind庫示例分析使用

    Boost是為C++語言標準庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的開發(fā)引擎之一,是為C++語言標準庫提供擴展的一些C++程序庫的總稱
    2022-11-11

最新評論