不可以。當您在源代碼中編寫“String”時,它將直接寫入可執行文件中,因為該值需要在編譯時知道(有工具可以將軟件分開并找到其中的所有純文本字符串)。
當你寫char*a="Thisisastring",“這是字符串”的位置在可執行文件中,而指向的位置在可執行文件中。可執行映像中的數據是只讀的。
您需要做的(如其他答案所指出的)是在堆上或堆棧幀上的位置創建該內存。
如果聲明一個本地數組,則在堆棧上為該數組的每個元素創建空格,并將字符串文字(存儲在可執行文件中)復制到堆棧中的該空間。
下一篇c語言有哪些編譯器?