「const char[19]」から「char*」に変換できない問題
9552 ワード
VS 2017で文字列定数を文字ポインタに付与できない問題
C++プログラム、例えばchar*p 1="hello wangbaoming";間違いを報告します!
タイプ変換のインスタンスについて:
ソリューション:エラー文の前にconst を追加「reinterpret_cast」:const charからintに変換できないエラー が発生します.まずconst_を使う必要がありますcastはp 1の読み取り専用属性を除去してタイプ変換 を行う.
次のようになります.
C++プログラム、例えばchar*p 1="hello wangbaoming";間違いを報告します!
タイプ変換のインスタンスについて:
#include
using namespace std;
int main()
{
double dPi = 3.1415926;
//1 : c
int num1 = static_cast<int> (dPi); //c++
int num2 = (int)dPi; //c
int num3 = dPi; //
cout << "num1:" << num1 << " num2:" << num2 << " num3:" << num3 << endl;
char *p1 = "hello wangbaoming ";
int *p2 = NULL;
p2 = (int *)p1;
//2
//p2 = static_cast (p1); //“static_cast”: “char *” “int *”
//3 reinterpret_cast
p2 = reinterpret_cast<int *> (p1);
cout << "p1 " << p1 << endl;
cout << "p2 " << p2 << endl;
//4 : c c++ static_cast<>() //C++
//c , c++ reinterpret_cast<>()
system("pause");
return 0;
}
ソリューション:
次のようになります.
#include
using namespace std;
int main()
{
double dPi = 3.1415926;
//1 : c
int num1 = static_cast<int> (dPi); //c++
int num2 = (int)dPi; //c
int num3 = dPi; //
cout << "num1:" << num1 << " num2:" << num2 << " num3:" << num3 << endl;
const char *p1 = "hello wangbaoming ";
int *p2 = NULL;
p2 = (int *)p1;
//2
//p2 = static_cast (p1); //“static_cast”: “char *” “int *”
//3 reinterpret_cast
char *p3 = const_cast<char *>(p1);
p2 = reinterpret_cast<int *> (p3);
cout << "p1 " << p1 << endl;
cout << "p2 " << p2 << endl;
//4 : c c++ static_cast<>() //C++
//c , c++ reinterpret_cast<>()
system("pause");
return 0;
}