首页 文章

Printf从scanf输入错误的数字返回

提问于
浏览
2

我正在编写一些基本代码来学习printf和scanf函数,但是当通过scanf函数输入整数时,printf函数返回完全不同的数字 . 输入字符时会发生类似的事情,只有printf函数显示正方形 . 代码有问题,还是其他问题?

#include <stdio.h>
int main()
{
    char letter;
    int num1,num2;
    printf("Enter any one keyboard character:  ");
    scanf("%c", &letter);
    printf("Enter any two integers separated by a space:  ");
    scanf("%d %d", &num1, &num2);

    printf("Numbers output %d and %d \n" , &num1, &num2) ;
    printf("letter input %c\n" , &letter) ;
    printf("stored at %p" , &letter) ;
    return 0;
}

无论何时输入任何整数或字符,都会显示2686680和2686676来代替整数,并显示填充的矩形而不是字符 .

任何帮助都会非常感谢,谢谢!

1 回答

  • 3

    &letter 表示存储printf正确的变量 letter 的地址 . 你应该在printf参数中使用 letter

    printf("%d\n", letter); // prints the value stored in letter
    
     printf("%p\n", &letter); // prints the address where letter is stored in memory
    

相关问题