C/C++:不可更動內容的常數字串

不可更動內容的常數字串,經使用Dev-C++實驗後得到結果,

D才是內容不可更動,而且指標也不可更動的字串常數,在編譯時就會出現Compile Error。

A則是不能更動內容,在改變A指標時會出現Compile Error,但是使用[]編譯器並不會出現錯誤,而是執行是才產生錯誤。

B與C的宣告,在這實驗中只是具有相同效用,僅順序擺放不同。



#include 

using namespace std;

int main()
{
    char* x = "000";
    
    char* const  a = "121";
    const char * b = "122";
    char  const* c = "123";
    const char* const d = "123";

    // pointer modify
//    a = x;   // assignment of read-only variable
    b = x;
    c = x;
//    d = x;   // assignment of read-only variable
        
//    a[2] = 'W';  // runtime-error, access violation
//    b[2] = 'X';  // assignment of read-only location
//    c[2] = 'Y';  // assignment of read-only location
//    d[2] = 'Z';  // assignment of read-only location
    
    cout<<a<<endl
        <<b<<endl
        <<c<<endl
        <<d<<endl
        <<x<<endl;

    system("PAUSE");
    return 0;
}

留言