gpt4 book ai didi

c - 为什么要在给定的 C 代码的格式说明符之前提供单个空格?

转载 作者:行者123 更新时间:2023-11-30 20:48:06 24 4
gpt4 key购买 nike

在此程序 1 中,我没有得到预期的输出。

// PROGRAM 1
#include <stdio.h>

int main () {
char str1, str2;

printf("Enter char1: \n");
scanf("%c", str1);

printf("Enter char2: \n");
scanf("%c", str2);

printf("Entered char1: %c\n", str1);
printf("Entered char2:%c\n", str2);

return(0);
}

在这个程序中我得到了预期的输出。所以请告诉我为什么不适合程序 1

//PROGRAM 2
#include <stdio.h>

int main () {
char str1[5], str2[5];

printf("Enter name: \n");
scanf("%s", str1);

printf("Enter your website name: \n");
scanf("%s", str2);

printf("Entered Name: %s\n", str1);
printf("Entered Website:%s\n", str2);

return(0);
}

最佳答案

scanf 需要一个指针作为参数。因此,您应该将第一个程序中的 scanf 更改为:

scanf("%c", &str1);

scanf("%c", &str2);

为了传递变量的地址

<小时/>

第二个程序起作用的原因是,本例中的 str1str2 是数组,因此当您将它们的名称作为参数传递给 scanf,你实际上传递了他们的地址。发生这种情况是因为数组名称衰减为指针。您也可以引用this answer了解更多详情。

关于c - 为什么要在给定的 C 代码的格式说明符之前提供单个空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47069287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com