我初始化了两个动态数组
int *a = malloc(3 * sizeof(int));
int *b = malloc(3 * sizeof(int));
现在我想要什么时候*(b + 1)
更改值,*(a + 1)
也会改变。但是当 *b
和*(b + 2)
更改它们的值,*a
和*(a + 2)
没有影响。我的意思是:
*(b+1) = 5; // *(a+1) will equal 5
我试过了
a + 1 = b + 1
编译器宣布错误。有人以某种方式告诉我吗?
最佳答案
你不能这样做。
您唯一能做的就是每次更改 *(b+1)
时也更改 *(a+1)
。例如:
*(b+1) = 5;
*(a+1) = *(b+1);
// now *(a+1) and *(b+1) both contain 5.
或者,按照通常的写法:
b[1] = 5;
a[1] = b[1];
// now a[1] and b[1] both contain 5.
但我猜这不是你想要的。
关于c - C 中的指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43425242/