CC++中的指针变量可以相互赋值,使得它们指向同一块地址空间

mac2026-08-21  1

两个指针变量可以相互赋值吗? int *p, *q; p=q; 这样写是什么意思?是p指向q吗? 答:1.两个指针变量之间可以相互赋值,p和q都是int类型的指针。 p=q表示将q所指向的int类型变量的地址赋给p 2.两个都是指针,所以是p的值等于q 如果p不是指针,那么p=q是p等于q指向的值 3.可以这样写,前提好像是q有确定的地址指向,然后用此语句赋值则表示,指针p和指针q指向相同的地址空间。 4.指针也只不过是一个变量而已,只不过里面存放的是地址

以上内容来源 示例:

#include<iostream> using namespace std; int main() { int *pa; int a[8]={1,2,3,4,5,6,7,8}; pa=a; int *pb; pb=pa; *(pb+3)=98; cout<<a[3]<<endl; *(pa+6)=0; cout<<a[6]<<endl; }

输出结果: 98 0

可见,pb和pa指向了同一块地址空间,用pb或者pa,都会对指向的地址空间中的数据进行操作。 此程序较为简单,容易看懂,但是在较为复杂的程序中,例如为了提高程序可读性,或者使得代码逻辑更加清晰,使用了两个指针指向同一块地址,无论是哪个指针修改了这块地址空间的内容,结果都是修改了。

最新回复(0)