我需要澄清一下關於C++中指針初始化基礎知識的概念。根據我的理解,在使用指針輸入一些值之前,必須爲指針分配一個地址。在C++中初始化指針
int *p;
*p=10; //inappropriate
cout << *p <<"\n";
這可能會顯示正確的輸出(10),但這可能會導致更大的程序問題,因爲p最初有它可以是任何東西&以後可以在程序中作爲well.So其他地方使用的垃圾地址,我相信這是incorrrect,正確的方法是:
int *p;
int x=10;
p=&x; //appropriate
cout << *p <<"\n";
我的問題是,如果上面的理解是正確的,那麼也同樣對char *申請以及?:
const char *str="hello"; // inappropriate
cout << str << "\n";
//OR
const string str1= "hello";
const char str2[6] ="world";
const char *str=str1; //appropriate
const char *st=str2; //appropriate
cout << str << st << "\n";
請指教
char *等價於int * p; * p = 10;'會是'char * s; * s ='h';',不是你寫的內容 –
僅供參考您可以手動將地址分配給指針(請參閱[這裏](http://stackoverflow.com/a/4532074/1559401))。在你的情況下,如果你有一個地址'10',你可以做'int * p =(int *)10'。你可以進一步顯示這裏[這裏](http://stackoverflow.com/a/32631614/1559401)。在嵌入式系統上工作時,尤其是在爲微控制器編寫代碼時,這特別有用。 – rbaleksandar