轮回的夏 发表于 2016-8-19 14:43:19

使用scanf语句需要注意一个小问题,新人值得一看把

这个问题我刚开始是觉得没什么的,肯定不会出错的,结果一编写出错了,找了半天还找不到,所以我觉得这个问题需要引起新手的注意
在使用scanf语句的时候,里面的取地址符一定要加上,不然运行会出现逻辑错误,因为编译器在编译的时候是不会报错的,单步调试的时候就会运行到这个语句就结束的

黑龍 发表于 2016-8-19 14:51:14

不一定哦
如果是char数组就不用= =

轮回的夏 发表于 2016-8-19 14:56:38

黑龍 发表于 2016-8-19 14:51
不一定哦
如果是char数组就不用= =

使用scanf输入,用char数组作为地址可以不用取地址符?
为什么?是因为char数组本身就指向地址了吗?

黑龍 发表于 2016-8-19 14:59:50

轮回的夏 发表于 2016-8-19 14:56
使用scanf输入,用char数组作为地址可以不用取地址符?
为什么?是因为char数组本身就指向地址了吗?

是啊

轮回的夏 发表于 2016-8-19 15:03:27

黑龍 发表于 2016-8-19 14:51
不一定哦
如果是char数组就不用= =

我刚刚试了一下,你说的不行哦,还是说我理解错意思了

#include<stdio.h>
void main()
{
       int i ;
       char a ;
       printf("Please input 10 integer numbers:");
       for( i =0 ; i < 10 ; i ++)
       {
                scanf("%d", a);
       }
       putchar('\n');

}

黑龍 发表于 2016-8-19 15:48:49

轮回的夏 发表于 2016-8-19 15:03
我刚刚试了一下,你说的不行哦,还是说我理解错意思了

{:5_99:}不是 我是说直接这样
char a;
scanf("%s",a);

黑龍 发表于 2016-8-19 15:48:49

轮回的夏 发表于 2016-8-19 15:03
我刚刚试了一下,你说的不行哦,还是说我理解错意思了

{:5_99:}不是 我是说直接这样
char a;
scanf("%s",a);

轮回的夏 发表于 2016-8-19 16:42:01

黑龍 发表于 2016-8-19 15:48
不是 我是说直接这样
char a;
scanf("%s",a);

原来如此,输出一个字符串,其他的情况还是要加取地址符的。

五号智能 发表于 2016-8-19 23:08:25

呵呵,吓我一跳,
页: [1]
查看完整版本: 使用scanf语句需要注意一个小问题,新人值得一看把