關於VS2017中const char *不能用於初始化char *型別的實體的問題
在C語言中並沒有字串型別,如果想要給定字串,有兩種初始化方法:
1.使用字元陣列
例如:
char name1[] = "小明";
2.使用字元指標
例如:
char *name2 = "小明";
在VS2017中使用第一種方法初始化字串,當然是可以的。但是使用第二種方法,會提示錯誤。如何解決呢?
方法1:在char *前增加const
const char *name3 = "小明";
該方法將字串儲存在靜態資料區,資料不能修改,可以正常輸出,但是進行函式傳參會出錯。
想要使用指標,可以先用字元陣列初始化,然後用指標指向字元陣列。
char name1[] = "小明";
char *p = name1;
方法2:更改解決方案的屬性
在解決方案的屬性中找到C/C++的語言一項,將符合模式更改為否(專案預設為是)。
這是我們就會發現原來提示的錯誤消失了,而且這時可以進行函式傳參。
相關文章
- const char* 型別不能用於初始化char* 型別實體型別
- 【C++】CONST CHAR*型別的值不能用於初始化CHAR*型別的實體C++型別
- 【筆記】VS2017中出現 "const char *" 型別的值不能用於初始化 "char *" 型別的實體筆記型別
- E0144 "const char *" 型別的值不能用於初始化 "char *" 型別的實體型別
- 【VS2019 C++】"const char *" 型別的值不能用於初始化 "char *" 型別的實體C++型別
- "LPWSTR" 型別的值不能用於初始化 "char *" 型別的實體型別
- VS中”LPTSTR" 型別的值不能用於初始化 "char *" 型別的實體型別
- VS C++ 2017中const char* 型別的值不能用於初始化char*的解決C++型別
- C++中出現《E0144 "const char *" 型別的值不能用於初始化 "char *" 型別的實體》的錯誤解決方法C++型別
- VS2019【C++報錯】E0144"const char *" 型別的值不能用於初始化 "char *" 型別的實體C++型別
- const char*, char const*, char*const的區別
- VS2019中出現E01104“const char *”型別的值不能用於初始化“char *”型別的實體的錯誤的解決辦法型別
- const char*, char const*, char*const 有何區別?
- C++中string、char *、char[]、const char*的轉換C++
- QT中QString轉const char *的問題QT
- 關於java的byte 和char 以及String等問題Java
- const char*的全特化
- PL/SQL中char型別的暗門SQL型別
- 關於Oracle to_char()函式中的IW,WW 周別顯示Oracle函式
- C++中char* const char* string 之間的轉換複習C++
- NTMySQL中varchar和char型別的區別heeMySql型別
- 避免使用Oracle的char型別Oracle型別
- char str[]和char *str的區別
- 當char型變數遇上char*型的指標變數指標
- Qt中 QString,QByteArray,Qchar,const char* ,char *int 的用法及相互轉換QT
- char型別的數值轉換型別
- 聊聊Oracle 11g中的char型別使用Oracle型別
- 應用中避免使用char/nchar型別型別
- Java中關於String型別的10個問題Java型別
- ABAP中Char型別資料轉換成Decimal型別型別Decimal
- C++中string轉換為char*型別返回後亂碼問題C++型別
- Python工作筆記-往dll中傳入char*型別的引數並且如何接收char*的值Python筆記型別
- Oracle的資料型別:char/varchar2Oracle資料型別
- Java 基於字元的IO Char Based IOJava字元
- MySQL字元資料型別char與varchar的區別MySql字元資料型別
- impdp遇到char字元含中文的問題字元
- varchar和char的區別
- C# - char型別的一些介紹C#型別