1. 程式人生 > >字串常量和變數區別

字串常量和變數區別

#include
#include
using namespace std;
int main()
{
string s1 = “abc”;//字串變數
char* s2 = “abc”;//字串常量,先在常量區儲存"abc",s2直接指向常量區的"abc"
char s3[] = “abc”;//字元陣列,先在常量區儲存"abc",然後在棧區申請記憶體空間,將"abc"複製過來,s3指向棧區的"abc"
// s1[0] = ‘q’;//正確,
// s2[0] = ‘q’;//錯誤,s2所指向內容是常量,不能修改
// s3[0] = ‘q’;//正確
// s1 = “abcd”;//正確
// s2 = “abcd”;//正確,s2指向另外一個字串常量
// s3 = “abcd”;//錯誤,s3是陣列名,相當於指標常量,指向不能改變 cout << s1 << s2 << s3 << endl; return 0;
}