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

Posted T.X

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对C转换说明符的误解以及关于数组的一些知识相关的知识,希望对你有一定的参考价值。

事实上,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转换说明符的误解以及关于数组的一些知识的主要内容,如果未能解决你的问题,请参考以下文章

对onActivityCreated片段回调有啥误解吗?

几个关于js数组方法reduce的经典片段

关于数组的一些经常使用函数

CALL/APPLY一些编程基础以及一些基础知识正则

关于 OpenGL 的问题以及将 C 转换为 C++ 的过程

关于代码片段的时间复杂度