读书人

求教关于C++指针的一个有关问题

发布时间: 2012-03-29 12:53:13 作者: rapoo

求教关于C++指针的一个问题

C/C++ code
#include <iostream>using namespace std;class A{public:    void abc(int *p,int *q)    {          *p=1;//这里能赋值          *q=2;//这里能赋值        cout<<*p<<"     "<<*q<<endl;    }};void main() {    int a=7;    int *b=&a;    int *v;         *v=7;//为什么这里不能赋值    int c=8;    int *d=&c;    A g;    g.abc(b,d);    cout<<*b<<"     "<<*d<<endl;} 

想问一下为什么在函数里面的指针能赋值,而在主程序里的指针不能赋值

[解决办法]
C/C++ code
#include <iostream>using namespace std;class A{public:    void abc(int *p,int *q)    {          *p=1;//这里能赋值          *q=2;//这里能赋值        cout<<*p<<"     "<<*q<<endl;    }};void main() {    int a=7;    int *b=&a;    int *v = new int;//因为你只定义了指针,未分配内存,分配了内存就能赋值了         *v=7;//为什么这里不能赋值    int c=8;    int *d=&c;    A g;    g.abc(b,d);//函数能赋值是因为这里的b,d参数都已经申请了内存    cout<<*b<<"     "<<*d<<endl;} 

读书人网 >C++

热点推荐