c++指针的一个小问题
#include<iostream>using namespace std;
int main()
{
char* s1;
cout<<s1<<endl;
cout<<*s1<<endl;
return 0;
}以上程序正常运行#include<iostream>
using namespace std;
int main()
{
char* s1;
*s1='a';
//char s2[]="hello";
cout<<s1<<endl;
cout<<*s1<<endl;
return 0;
}编译通过,运行出错
请问该如何理解这里的s1。 char* s1,s1是数组,每个元素都是指针,叫指针数组。
*s1='a'; s1访问指针数组的第一个元素,*s1='a',让第一个指针所示内存的第一个字节等于'a'。
你的指针一个都没初始化,指向哪里都不知道,这样随意的使用,妥妥的崩溃。 明白了,谢谢!{:yct31:} 回复 2# xiaomaoshi
页:
[1]