关于C语言中scanf函数的小结

   1.scanf函数中的格式控制应该是变量名的地址,而不是变量名,例如a和b为整形变量,如果写成scanf(“%d%d”,a,b); 就会出错的,应该将这个,a,b改成&a,&b;(表示地址)。

   2.我们都知道C语言中的字符串是存放到字符数组中的,如果我们定义了一个字符数组,如char a[20]我们想把字符串输入到这个字符数组通常有两种方式,第一种.逐个字符输入,采用for循环的形式。第二种,直接输入字符串的形式,用格式控制符%s第一种我们这样输入,如输入:

        for(i=0;i<=19;i++)

        { 

               scanf(“%c”,&a[i]); 

        }

       第二种我们用这种方式输入 scanf(“%s”,a); 注意第二种这种形式。

为什么要我们没有加&?C语言中把这个数组名当做该数组的起始地址。但是这种数组仅限于字符数组,不要企图,利用数值型数组的名来整体输入,一个数值型的个数值型的数组,这就是大错误了。比如这样写是不正确的:

        int a[10];

        scanf(“%d”,a); 

  3.对于指针问题,大家需要注意一点, 指针就是地址,这是在任何条件下都成立的。看下面这个例子:

        char *p;

        char a[20];

        p=a;
        for(i=0;i<20;i++,p++)

        {  

           scanf(“%c”,p);
        }  
这是一个采用指针变量输入数据的例子,这里的指针变量p在for循环之前就指向了这个数组a,也就是指向了数组的首元素,也就是是说指针变量p里存放的是,数组首元素的地址,所以在用这个scanf函数进行输出时,指针变量的前方就不用再加取地址符号了。

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值