我需要澄清一下关于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