当我非常确定我的代码正确时,收到“格式指定类型'int'但参数类型为'int *'[-Wformat]”的警告?

问题描述 投票:0回答:1

所以我是编码新手,正在自学 C。今天我尝试使用

scanf()
编写一个简单的程序,但我没有得到我期望的输出。无论我输入什么数字,看起来
scanf()
要么没有存储该值,要么正在返回该值的地址。

我的代码是:

#include <stdio.h>

int main() {
    int num1;
    printf("Please enter a number: \n");
    scanf("%i", &num1);
    printf("You have entered: %i!", &num1);
    return 0;
}`

我得到的输出是:

Please enter a number: 
4
You have entered: 1803728744!%

我已经针对其他示例片段对我的代码进行了双重和三次检查,我已将数据类型更改为浮点数、小数等,我不明白为什么它不打印我输入的数字,而是用 ! 打印一个长数字! % 最后。

c scanf
1个回答
0
投票

printf
需要
int
值而不是指针:
printf("You have entered: %i!", num1);

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