数组快速去重 C语言为什么不建议把变量作为数组长度?
C语言为什么不建议把变量作为数组长度?
数组的大小不能用变量表示,因为在编译和连接过程中,内存应该根据您设置的长度为数组分配相应的内存空间。如果它是一个变量,就没有办法分配它。可以使用符号常量来解决此问题。首先,使用:#define m 100
#define N 100,然后您可以在程序中定义u[m][N]二维数组。当它不一定是100时,它可以是任何正整数。
在C语言中,所有变量空间在程序运行开始时应用于系统,包括和指针。它也需要空间,除了一些动态应用程序方法,如malloc函数。未经申请,不得在航天系统中进行读写操作。然后,如果数组的大小是一个变量定义,则在程序运行之前无法确定数组的大小,因此无法应用它,因此不允许这样做。解决方案如前所述,例如:int a[n
]可以更改为
int*const a=(int*)malloc(sizeof(int)*n)
,这样变量就可以直接用作数组,包括[1]。因为“[]”中的方括号运算符只偏移其中的地址数并取一个值。例如,
a[1
]相当于
*(a 1)
,星号后的常量修饰符表示指针声明后不能更改,即只能指向获取的空间,完全符合数组的性质。
你好,我[不怕失败,也不怕成功],我很高兴为你回答。普通毕达哥拉斯数组
1。(3,4,5)
2. (6,8,10)
3. (5,12,13)
4. (8,15,17)
5. (7,24,25)
6. (9,40,41)
7. (10,24,26)
8. (11,60,61)
9. (12,35,37)
10. (48,55,73)
11. (12,16,20)
12. (13,84,85)
13. (20,21,29)
14. (20, 99, 101)
15. (60, 91, 109)
16. (15、112、113)17、(17144145)18、(19180181)请LZ多采用专业科普知识,欢迎关注我。如果你喜欢我的回答,也请给我表扬或转发,你的鼓励是支持我写下来的动力,谢谢。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。