我的数组未打印实际值

问题描述 投票:3回答:2

我有一个简单的程序,要求用户输入10个整数并打印出来,但不是打印整数,而是打印随机的7位数字,每增加​​一个新的int就会增加4。

#include <stdio.h>

int main(int argc, char *argv[])
{
    int number = 0;
    int numbers[10];

    for (int i = 0; i < 10; i++)
    {
        printf("Please enter 10 numbers: ");
        scanf_s("%d", &number);
        numbers[i] = &number;

        printf("Your number was %d\n", &numbers[i]);

    }

}

该程序最终会执行类似的操作:

请输入10个数字:1

您的电话号码是5241560

请输入10个数字:2

您的电话号码是5241564

请输入10个数字:3

您的电话为5241568

依此类推,每次使用不同的7位数字,但始终增加4。

c printf scanf
2个回答
2
投票

在这种情况下,您可能认为是随机的数字毕竟不是随机的!它们实际上是数组元素的地址。为什么?好吧,因为在您的printf文件中,您打印出了&numbers[i]。放置“&”号表示访问某个值的地址,而不是访问值本身。因此,如果您对打印数组元素而不是数组元素的addresses


0
投票

您不必要地使用&。替换

© www.soinside.com 2019 - 2024. All rights reserved.