百科问答小站 logo
百科问答小站 font logo



C/C++中的数组为什么必须定义之后在一行内立刻赋值,而不能定义数组之后换一行再赋值? 第1页

  

user avatar   zhang-hao-72 网友的相关建议: 
      

这样可以,先用typeof把匿名字面量转换成数组对应类型,再memcpy。不过应该没什么地方用得上吧。。。

       #include <stdio.h> #include <string.h>  int main(void) {     int a[3];     memcpy(a,  (typeof(a)){1,2,3}, sizeof(a));      printf("%d
", a[0]);      return 0; }     

如果是结构体,连memcpy也不用,可以直接用加了typeof的匿名变量来赋值。

typeof似乎是gcc的扩展语法,gcc以外的环境不知道能不能用了。

       #include <stdio.h> #include <string.h>  struct {     int a;     float b; } t; int main(void) {     t = (typeof(t)){1, 2.0};     printf("%f
", t.b);     return 0; }     




  

相关话题

  将文件编译成某种代码,打印到A4纸上,这种想法是否可行? 
  大一新生做C语言课设被强制要求使用 Borland C++ 3.1,此IDE相对于其他IDE有何优点? 
  c++循环里面定义重名为什么不报错? 
  多核CPU中,利用多线程进行排序中出现了一些奇怪的现象,不知道其背后的原因是什么,希望有人能给予解答? 
  c语言while语句他是怎么工作怎么运行的? 
  要设计一段C++程序将这组数按要求重新排序时,有哪些好的算法? 
  LeetCode上 C++ 官方题解为什么有很多没有写delete,不会内存泄漏么?面试时也可以么? 
  为什么大多数程序主函数成功时都return 0; 不return 1; ? 
  请问这段C++代码是未定义行为吗? 
  大项目不允许使用C++STL 容器合理吗? 

前一个讨论
300吨铁球从10万米高空落下会怎样?
下一个讨论
为什么欧美居民没有炒菜的习惯?





© 2025-04-21 - tinynew.org. All Rights Reserved.
© 2025-04-21 - tinynew.org. 保留所有权利