24小时热门版块排行榜    

CyRhmU.jpeg
查看: 351  |  回复: 1

sciencejoy

新虫 (著名写手)

[交流] C++指针变量已有1人参与

指针变量存储其他变量的地址,
CODE:
double* p_x;
int* p_i;

*表示声明的变量是指针,p_x是指向一个双精度浮点数变量的指针,p_i是指向一个整型变量的指针。
CODE:
double *p_x, *p_y;
int *p_i, j;

以上代码中,p_x, p_y, p_i为指针,j为整型变量。第二行这种写法不推荐,最好一行只声明一个指针。
指针变量p_x声明之后,需要辨认变量的位置(即p_x)和变量的内容(即*p_x)。
CODE:
double y, z;
double* p_x;

z = 3.0;
p_x = &z;             //p_x存储变量z的地址
y = *p_x + 1.0;     //*p_x表示内存 p_x的内容,即z的值

指针变量需要先指定一个有效地址才能用,比如以下代码就会造成难以觉察的问题,
CODE:
double* p_x;  //p_x存储双精度变量的地址——这里还没有指明地址
*p_x = 1.0;     //给未指明的内存赋值

以上问题可以用关键字new分配内存,避免以上问题,
CODE:
double* p_x;

p_x = new double;  //给p_x分配一个地址
*p_x = 1.0;

delete p_x;             //释放p_x对应的内存

使用指针一定要注意指针别名,
CODE:
double y;
double* p_x;
y = 3.0;
p_x = &y;
std::cout << "y = " << y << "\n";
*p_x = 1.0;  //这里改变了变量y的值
std::cout << "y = " << y << "\n";

[ Last edited by sciencejoy on 2014-2-23 at 21:39 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
赞!
2楼2014-02-26 11:49:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sciencejoy 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见