可能的重复:
如何在没有循环的情况下将数组初始化为C语言?
如何在C中初始化数组
如何在不使用for或任何其他循环的情况下将已知大小的数组归零?
例如:
arr[20] = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
Run Code Online (Sandbox Code Playgroud)
这是漫长的道路......我需要它的简短方法.
Pra*_*rav 79
int arr[20] = {0};
Run Code Online (Sandbox Code Playgroud)
C99 [$6.7.8/21]
如果括号括起的列表中的初始值设定项少于聚合的元素或成员,或者用于初始化已知大小的数组的字符串文字中的字符数少于数组中的元素 ,则聚合的其余部分应为隐式初始化与具有静态存储持续时间的对象相同.
Ole*_*pin 56
int arr[20];
memset(arr, 0, sizeof arr);
Run Code Online (Sandbox Code Playgroud)
小智 10
注意:您可以将memset与任何字符一起使用.
例:
int arr[20];
memset(arr, 'A', sizeof(arr));
Run Code Online (Sandbox Code Playgroud)
也可以部分填补
int arr[20];
memset(&arr[5], 0, 10);
Run Code Online (Sandbox Code Playgroud)
但要小心.它不受数组大小的限制,您可能很容易对程序造成严重损害,执行以下操作:
int arr[20];
memset(arr, 0, 200);
Run Code Online (Sandbox Code Playgroud)
它将在你的阵列之后工作(在windows下)和零内存.它可能会导致其他变量值的损坏.
| 归档时间: |
|
| 查看次数: |
120068 次 |
| 最近记录: |