我有一个简单的程序,要求用户输入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。
在这种情况下,您可能认为是随机的数字毕竟不是随机的!它们实际上是数组元素的地址。为什么?好吧,因为在您的printf文件中,您打印出了&numbers[i]
。放置“&”号表示访问某个值的地址,而不是访问值本身。因此,如果您对打印数组元素而不是数组元素的addresses
您不必要地使用&
。替换