cpxuvs 发表于 2016-05-09 23:38

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。

xiaomaoshi 发表于 2016-05-10 15:12

char* s1,s1是数组,每个元素都是指针,叫指针数组。

*s1='a'; s1访问指针数组的第一个元素,*s1='a',让第一个指针所示内存的第一个字节等于'a'。

你的指针一个都没初始化,指向哪里都不知道,这样随意的使用,妥妥的崩溃。

cpxuvs 发表于 2016-05-10 19:13

明白了,谢谢!{:yct31:} 回复 2# xiaomaoshi


   
页: [1]
查看完整版本: c++指针的一个小问题