我有以下代码:
#include <stdio.h>
#include <stdlib.h>
int *p;
int main() {
int a = 4, b = 8;
p = &b;
//TODO: fill in the blank
printf("a = %ld\n", /*Fill in here */);
printf("b = %ld\n", /*Fill in here */);
return 0;
}
如何打印 2 个变量的值 a
和b
仅使用 p
访问它们?
最佳答案
一般来说,您无法使用当前的代码/方法来执行此操作。
C 标准中没有任何内容可以保证两个或多个自变量的内存分配策略,因此不可能进行上一个-下一个内存位置跟踪。没有确定的方法可以推断 a
的值,只能访问 p
。
如果您需要从单个指针访问多个变量(相同类型)的值,请考虑创建一个数组,其中的元素保证驻留在连续的内存位置,因此指针算术是有意义的,我们可以确定性地到达上一个-下一个元素。
关于c - 在下面的代码中使用指针打印 2 个变量的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42393538/