示例代码:
int ar[3]; ............ ar[0] = 123; ar[1] = 456; ar[2] = 789;
有没有办法让它缩短? 就像是:
int ar[3]; ............ ar[] = { 123, 456, 789 };
我不需要解决方案:
int ar[] = { 123, 456, 789 };
定义和初始化必须是分开的。
您所要求的不能直接完成。 然而,你可以在那里做不同的事情,从创建一个用聚合初始化初始化的本地数组开始,然后在数组上memcpy
-ed(仅对POD类型有效),或者使用更高级别的库,如boost::assign
。
// option1 int array[10]; //... code { int tmp[10] = { 1, 2, 3, 4, 5 } memcpy( array, tmp, sizeof array ); // ! beware of both array sizes here!! } // end of local scope, tmp should go away and compiler can reclaim stack space
我没有时间检查如何使用boost::assign
来执行此操作,因为我几乎不使用原始数组。
可以直接分配数组:
int a[3] = {1, 2, 3};
另请参阅C ++ Arrays教程 。
int a [] = {1,2,3};
这不适合你吗?
main() { int a[] = {1,3,2}; printf("%d %d %dn", a[0], a[1], a[2]); printf("Size: %dn", (sizeof(a) / sizeof(int))); }
打印:
1 3 2 Size: 3
C99arrays初始化怎么样?
int array[] = { [0] = 5, // array[0] = 5 [3] = 8, // array[3] = 8 [255] = 9, // array[255] = 9 };
#include using namespace std; int main() { int arr[3]; arr[0] = 123, arr[1] = 345, arr[2] = 567; printf("%d,%d,%d", arr[0], arr[1], arr[2]); return 0; }
以上就是c/c++开发分享C / C ++数组赋值相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/541673.html