我有以下代码:
#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;
}
如何仅使用a
打印2个变量b
和p
的值才能访问它们?
答案 0 :(得分:1)
通常,您无法使用当前的代码/方法执行此操作。
C标准中没有任何内容可以保证两个或多个自变量的内存分配策略,因此无法进行上一次下一次内存位置跟踪。没有确定性的方法来推断a
的价值,仅访问p
。
如果您需要从单个指针访问多个变量(相同类型)的值,请考虑创建一个数组,其中元素保证位于连续的内存位置,因此指针算法是有意义的,我们可以确定性地达到上一个元素。