c - 在下面的代码中使用指针打印 2 个变量的数据

标签 c pointers

我有以下代码:

#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 个变量的值 ab仅使用 p访问它们?

最佳答案

一般来说,您无法使用当前的代码/方法来执行此操作。

C 标准中没有任何内容可以保证两个或多个自变量的内存分配策略,因此不可能进行上一个-下一个内存位置跟踪。没有确定的方法可以推断 a 的值,只能访问 p

如果您需要从单个指针访问多个变量(相同类型)的值,请考虑创建一个数组,其中的元素保证驻留在连续的内存位置,因此指针算术是有意义的,我们可以确定性地到达上一个-下一个元素。

关于c - 在下面的代码中使用指针打印 2 个变量的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42393538/

相关文章:

c - 为什么这段代码在c中会失败?

c - 根据 HIS 代码指标的 C 代码指令数

c - 在数组中打印 'box'

c - localtime 的结果结构如何在 C 中分配?

c++ - 以下程序的一些说明

c++ - 尝试使用递归和指向指针的指针来反转链表,但 reversell 函数未给出预期的正确输出

c - 未知类型名称 C

安卓/java/src/pcf : No such file or directory

c++ - 得到错误的输出

c++ - 不使用 For 循环将数据从指向局部数组的指针传输到全局数组