本文目录一览:
- 1、能否在C程序中改变数组的长度?
- 2、C语言长度修正符问题
- 3、C语言中,printf函数格式控制字符串,长度修正符h/l,l的意思是long,h代表short但是哪个单词的缩写?
- 4、怎么在C语言中重新定义数组的长度
能否在C程序中改变数组的长度?
b是const类型的,值不能改变。
对于数组来说,一般方式定义的数组都是固定长度的。如果希望改变数组的长度,可以采用链表来代替普通的静态数组。
对于简单类型变量,有另一种更为简单的方式实现变长数组,就是
int *a;
然后在你需要的地方 a=new int[b];
这个时候b可以是int型的变量,可以在为a分配空间之前计算好。
只需要在最后delete a;就可以释放为a分配的内存空间。
C当中没有new和delete的话可以用malloc和free,两者等价。
以上的方式即可以实现“某种意义下”的无长度限制的一维数组。但是不能够实现无限长的数组(注意,无长度限制和无限长是不同的概念)。
C语言长度修正符问题
不是这么理解的。
C 标准要求 float 类型至少要能精确表示到小数点后6位,并且整数部分的表示范围至少要达到 10-37 -- 10+37 。float 一般是 32 位的。
C 标准规定double 类型的整数部分的最小表示范围和 float 一样,都是 10-37 到 10+37,但是它要求 double 类型的小数部分至少要能精确到小数点后 10 位。double 通常是 64 位的。
所以可以看出,float最多可以精确到小数点后6位,而double最多可以精确到小数点后10位
由于9999.111111正好是小数点后6位,所以使用%f,%lf输出都是一样的。
C语言中,printf函数格式控制字符串,长度修正符h/l,l的意思是long,h代表short但是哪个单词的缩写?
h就是short的缩写
因为s已经用于字符串了
所以只能用h代替short
怎么在C语言中重新定义数组的长度
C语言一维数组分静态一维数组和动态一维数组两种。 一、静态一维数组,在定义的时候就已经确定其长度。如 int a[10];就是定义了一个长度为10个元素的整型数组。 静态数组不支持长度的增加。如果要增加长度,只能新定义一个更长的数组,