1. 程式人生 > >C和C++ const用法的區別

C和C++ const用法的區別

C/C++ const用法的區別

區別一:const定義的常量:

const定義的常量:

    C語言:當修飾一個識別符號的時候我們來說,這個識別符號依然是一個變數,但是它具有常屬性,不能被修改。即它定義的變數叫做常變數
     C++: const修飾的識別符號就是一個常量

下面我們通過例子來解釋一下它的區別:

eg1:
C語言和C++中,const修飾的識別符號都不能直接被改變,下面的例子就是在不同的語言中出現的錯誤

C語言:

#include <stdio.h>
int main()
{
    int a = 10;
    const int
b = 10; a = 20;//a是變數,a的值可以改變 b = 20; printf("a = %d\n b = %d\n",a,b); return 0; }

這裡寫圖片描述

C++ :

#include <iostream>
using namespace std;
int main()
{
    int a = 10;
    const int b = 10;

    a = 20;//a是變數,a的值可以改變
    b = 20;
    cout<<"a = "<<a<<"\n"<<"b = "<<b;
    return
0; }

這裡寫圖片描述

eg2:

C語言中,const修飾的識別符號是一個常變數,而非 常量
C++中,const修飾的識別符號就是一個常量,而且必須初始化,一旦建立,其值就不可能改變。

C語言:

#include <stdio.h>
int main()
{
    const int b = 10;

    int arr [10];
    int arr1 [b];
    return 0;
}

這裡寫圖片描述

C++ :

#include <iostream>
using namespace std;
int main()
{
    const int b = 10
; int arr [10] = {0}; int arr1 [b] = {0}; return 0; }

這裡寫圖片描述

區別二: const定義函式

const定義函式
  C語言: 不可以定義const函式
   C++ : 可以定義const函式