C/C++:不可更動內容的常數字串
不可更動內容的常數字串,經使用Dev-C++實驗後得到結果,
D才是內容不可更動,而且指標也不可更動的字串常數,在編譯時就會出現Compile Error。
A則是不能更動內容,在改變A指標時會出現Compile Error,但是使用[]編譯器並不會出現錯誤,而是執行是才產生錯誤。
B與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;
}
留言