C 11新特性 auto關鍵字

2021-08-18 03:36:47 字數 1366 閱讀 9435

#include 

#include

using

namespace

std;

template

void add(t t, u u)

int main()

templatet, class

u>

auto add(t t, u u) -> decltype(t + u)

auto a = 10;

auto *pa = new

auto(a);

auto **rpa = new

auto(&a);

cout

<< typeid(a).name() << endl; // 輸出: int

cout

<< typeid(pa).name() << endl; // 輸出: int *

cout

<< typeid(rpa).name() << endl; // 輸出: int **

int i = 10;

int &r = i;

auto a = r;

a = 13; // 重新賦值

cout

<< "i = "

<< i << " a = "

<< a << endl; // 輸出i=10,a=13

// 顯式宣告

auto &b = r;

b = 15; // 重新賦值

cout

<< "i = "

<< i << " b = "

<< b << endl; // 輸出i=15,a=15

const

int c1 = 10;

auto c2 = c1;

c1 = 11; // 報錯,c1為const int型別,無法修改const變數

c2 = 14; // 正確,c2為int型別

// 顯示宣告

const

auto c3 = c1;

c3 = 15; // 報錯,c3為const int型別,無法修改const變數

int a[10];

auto b = a;

cout

<< typeid(b).name() << endl; // 輸出:int *

auto &c = a;

cout

<< typeid(c).name() << endl; // 輸出:int [10]

C 11新特性 auto關鍵字

熟悉指令碼語言的人都知道,很多指令碼語言都引入了 型別自動推斷 技術 比如python,可以直接宣告變數,在執行時進行型別檢查。隨著c 11標準的發布,c 語言也引入了型別自動推斷的功能,這就是我們今天要介紹的auto關鍵字。c 是一種強型別語言,宣告變數時必須明確指出其型別。但是,在實踐中,優勢我...

C 11新特性 auto關鍵字

在c 98標準中就存在著auto關鍵字,c 98標準中auto關鍵字用於自動變數的宣告,但在預設情況下即使不宣告auto,函式內部的變數也是具有自動儲存期的。因此由於使用極少且多餘,在c 11中已刪除這一用法。void fun c 11新標準引入了auto型別說明符,採用它可以讓編譯器幫助我們分析表...

C 11新特性 auto關鍵字

熟悉指令碼語言的人都知道,很多指令碼語言都引入了 型別自動推斷 技術 比如python,可以直接宣告變數,在執行時進行型別檢查。隨著c 11標準的發布,c 語言也引入了型別自動推斷的功能,這就是我們今天要介紹的auto關鍵字。c 是一種強型別語言,宣告變數時必須明確指出其型別。但是,在實踐中,優勢我...