码迷,mamicode.com
首页 > 编程语言 > 详细

对C转换说明符的误解以及关于数组的一些知识

时间:2017-04-20 23:15:33      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:har   log   输入   调用   scanf   写法   不包含   输入数据   div   

事实上,scanf()函数中%c并非是用来输入单个字符的,而是用来输入一组字符的。

例如:

char a[3];
scanf("%3c",a);

其中“3”规定了输入数据的宽度,当然宽度为“1”的时候,%c确实可以用来输入单个字符。但是认为

%c这个格式转换只是用来输入单个字符的确实大错特错,而且可能会产生一个很严重的潜在的BUG。

 

联系下%nd,n规定了输入数据的宽度,但是与%nc不同的是,%nd只是输入了单个整形数据,这个整形数据宽度不大于n。

复习下关于数组的知识点:

初始化中给数组部分元素赋值,那么剩下的元素系统默认赋值0.

如果是在输入中给部分元素赋值,剩下的没有赋值的元素,其值是随机数。

形参中对数组的定义,如double a (double a[n]),这个n是没有意义的,因为形参类型double[n],

而调用时作为实参的数组名类型确实double *,也就是说这里的实参本质只是一个指向某个double类型数据的指针而已,

它本身并不包含任何数组大小方面的信息。正确的写法是double a (double [],int ).

 

对C转换说明符的误解以及关于数组的一些知识

标签:har   log   输入   调用   scanf   写法   不包含   输入数据   div   

原文地址:http://www.cnblogs.com/TX980502/p/6740989.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!