2015-01-21 63 views
0

C++中「abc」的類型是什麼?考生可以是const char*char*C++中「abc」的類型是什麼?

還有什麼可以想到的嗎?

+9

它實際上是'const char [4]'。 – 2015-01-21 12:17:10

+0

我遇到了一個奇怪的鐺++編譯器行爲使用C++ 11 std :: regex_replace。編譯器不會接受: 'std :: string text =「快速棕色狐狸」;' 'std :: regex vowel_re(「a | e | i | o | u」);' 錯誤 - > std :: cout <<'\ n'<< std :: regex_replace(text,vowel_re,「[$&]」)<<'\ n';' works - >'std :: cout < <'\ n'<< std :: regex_replace(text,vowel_re,std :: string(「[$&]」))<<'\ n';' – tisch 2015-01-21 12:21:01

+4

@tisch這是一個完全不相關的問題相信你必須傳遞'std :: string {「[$&]」}') – Barry 2015-01-21 12:25:25

回答

0

在tutorialspoint我嘗試:

#include <iostream> 
#include <typeinfo> 
using namespace std; 

int main() 
{ 
    cout << typeid("abc").name() << endl; 
    cout << typeid (const char *).name() << endl; 
    cout << typeid(char *).name() << endl; 
    cout << typeid(char[4]).name() << endl; 
    cout << typeid(const char[4]).name() << endl; 

    return 0; 
} 

輸出是:

A4_c
PKC
PC
A4_c
A4_c

似乎炭[4]或爲const char [4 ]但肯定不是char *或者const char *

+1

它是'const char [4]',按照C++ 11§2.14.5¶8(*普通字符串文字和UTF-8字符串文字也被稱爲窄字符串文字。窄字符串文字具有類型「array 'n'const char'「,其中n是下面定義的字符串的大小,並具有靜態存儲持續時間(3.7)。*) – 2015-01-21 12:44:46

+2

不要使用'typeid'來告訴類型。有時由標準保證給你錯誤的答案。 – 2015-01-21 13:05:23

+0

我會猜想它也是const char [4]。我用typeid來說明。對於一個更純粹的答案,你會寫出可能爲char [N]中的數字模板化的重載,並查看哪一個可以打印。 – CashCow 2015-01-21 14:14:12

相關問題