c/c++语言开发共享C / C ++数组赋值

示例代码:

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

      (0)
      上一篇 2021年1月3日
      下一篇 2021年1月3日

      精彩推荐