2020-02-11 09:53发布
彼岸花开@ 发表于 2014-11-29 14:28 1、谢谢指出错误。。给出了C89 C99 的不得同。 2、在17 楼已经重新写了体会。如下: 1、 对于静态数 ...
snoopyzz 发表于 2014-11-29 13:38 完全错误, C语言不存在因为没定义大小就可以 随意增加数组大小的可能... C89中不允许不指定数组大小的同 ...
最多设置5个标签!
其针对类型求解。如果 a 是数组,sizeof(a) 就是数组长度, 如果 a 是指针,那就是指针这个类型的长度。
在MDK里人工加上-c99就应该可以定义没长度的数组也不给初值了...但此时数组长度是0
加了-c99也可以用动态数组,C99中的名字叫变长数组, 适用于局部数组变量, 其长度可以用一个变量来指定
另外用malloc 申请内存(分配在堆上), 也可以变向当数组来用, 但记得要free掉,
变长数组分配在栈上, 作用域一结束栈就自动还原了所以不用人工释放
局部数组动态大小。
学到了,我想应该是通过在栈上 SP-X, X 可变实现的。
不要忘了当初发明C语音是为了替代汇编语言写操作系统软件的,所以有些所谓的“缺点”并不是真正的缺点哦,她有一个重要假定就是编程员自己知道要干什么,只是后来C发展的太好了,以至于大家把它用在了几乎所有领域,还繁衍出一个庞大类C家族,C++、C#、java、python、objective-c、lua等。
一周热门 更多>