首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-29 
求教关于C++指针的一个问题C/C++ code#include iostreamusing namespace stdclass A{public:void abc(i

求教关于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;} 

热点排行