2017-02-18 27 views
-1

你好,我試圖找到參考值或指針的產出,但我 遇到一個名稱類型的錯誤:沒有指定類型的錯誤,試圖ASIGN輸出看到指針和refrence輸出時

#include <iostream> 

using namespace std; 
int main() { 
    auto j,h,n,m,k; 
    auto j = 19; 
    auto h = 12; 
    auto &n = j; 
    auto *m = &h; 
    auto *k = h; 
    cout << "j=" <<j <<"\n"; 
    cout << "h=" << h <<"\n"; 
    cout << "n= " << &n << endl; 
    cout << "m= " << &h << endl; 
    cout << "k= " << *k << "\n"; 
    return 0; 
} 
+2

你認爲這應該如何工作:'auto j,h,n,m,k;'? –

+1

你從編譯器得到什麼錯誤信息?它應該給你一個想法有什麼問題... – Matthias

+0

馬蒂亞斯,每行自動我看到名稱類型錯誤 –

回答

0

汽車只允許在同一時間初始化。 so line auto j,h,n,m,k是錯誤的,「auto & n = j」是非法的。

+0

'汽車&n = j;'是好的(如果'自動j,h,n,m,k'線是刪除) –

1

auto只能在定義的正確大小上具有特定類型時才能使用。

因爲你沒有在第e行

auto j,h,n,m,k; 

使用特定類型的任務你得到一個錯誤。此外,n,m,k在程序後面會用到,所以你不能兩次定義它們。 如果您給變量一個特定的類型並在第一行中省略變量聲明n,m,k,程序將起作用。像

int j,h;