Questions tagged «initialization»



6
C char数组初始化
我不确定初始化后通过以下方式在char数组中会有什么。 1. char buf[10] = ""; 2. char buf[10] = " "; 3。char buf[10] = "a"; 对于情况2,我认为buf[0]应该是' ',buf[1]应该是'\0',并且从buf[2]到buf[9]将是随机内容。对于情况3,我认为buf[0]应该是'a',buf[1]应该是'\ 0',并且从buf[2]到buf[9]将是随机内容。 那是对的吗? 对于情况1,会发生什么buf?buf[0] == '\0'从buf[1]到buf[9]将会是随机内容?

3
将结构初始化为0
如果我有这样的结构: typedef struct { unsigned char c1; unsigned char c2; } myStruct; 将此结构初始化为0的最简单方法是什么?以下足够吗? myStruct _m1 = {0}; 还是我需要将每个成员显式初始化为0? myStruct _m2 = {0,0};
116 c  struct  initialization 

14
如何将List <T>初始化为给定的大小(而不是容量)?
.NET提供了一个性能几乎相同的通用列表容器(请参阅阵列性能与列表性能问题)。但是,它们在初始化方面有很大的不同。 数组很容易使用默认值初始化,并且根据定义,它们已经具有一定的大小: string[] Ar = new string[10]; 这样可以安全地分配随机项目,例如: Ar[5]="hello"; 与列表相比,事情更加棘手。我可以看到执行相同初始化的两种方法,这两种都不是您所说的优雅: List&lt;string&gt; L = new List&lt;string&gt;(10); for (int i=0;i&lt;10;i++) L.Add(null); 要么 string[] Ar = new string[10]; List&lt;string&gt; L = new List&lt;string&gt;(Ar); 什么是更清洁的方式? 编辑:到目前为止的答案涉及容量,这是除预填充列表以外的其他功能。例如,在刚创建的容量为10的列表上,一个不能执行L[2]="somevalue" 编辑2:人们想知道为什么我要以这种方式使用列表,因为这不是他们打算使用的方式。我可以看到两个原因: 令人信服的是,列表是“下一代”数组,几乎没有损失,却增加了灵活性。因此,默认情况下应使用它们。我指出,它们可能不那么容易初始化。 我目前正在编写的是一个基类,该基类在更大的框架中提供了默认功能。在我提供的默认功能中,列表的大小是高级已知的,因此我可以使用数组。但是,我想为任何基类提供动态扩展它的机会,因此我选择了一个列表。

3
静态类初始化何时发生?
静态字段何时初始化?如果我从不实例化一个类,而是访问一个静态字段,那么用于实例化私有静态字段的所有静态块和私有静态方法是否在那个瞬间被调用(按顺序)? 如果我调用静态方法怎么办?它也运行所有静态块吗?之前的方法?

10
如何在C ++中初始化私有静态const映射?
我只需要字典或关联数组string=&gt;即可int。 这种情况下有类型映射C ++。 但是对于所有实例,我只需要一个映射(-&gt;静态),并且该映射不能更改(-&gt; const); 我已经在Boost库中找到了这种方式 std::map&lt;int, char&gt; example = boost::assign::map_list_of(1, 'a') (2, 'b') (3, 'c'); 没有这个库,还有其他解决方案吗?我已经尝试过类似的方法,但是地图初始化总是存在一些问题。 class myClass{ private: static map&lt;int,int&gt; create_map() { map&lt;int,int&gt; m; m[1] = 2; m[3] = 4; m[5] = 6; return m; } static map&lt;int,int&gt; myMap = create_map(); };

8
我如何在声明它的同一行中初始化一个C#列表。(IEnumerable字符串收集示例)
我正在写我的测试代码,但我不想写: List&lt;string&gt; nameslist = new List&lt;string&gt;(); nameslist.Add("one"); nameslist.Add("two"); nameslist.Add("three"); 我很想写 List&lt;string&gt; nameslist = new List&lt;string&gt;({"one", "two", "three"}); 但是{“一个”,“两个”,“三个”}不是“ IEnumerable字符串集合”。如何使用IEnumerable字符串集合在一行中初始化它?


10
默认情况下,delphi变量是否使用值初始化?
我是Delphi的新手,并且已经在运行一些测试以查看默认情况下将哪些对象变量和堆栈变量初始化为: TInstanceVariables = class fBoolean: boolean; // always starts off as false fInteger: integer; // always starts off as zero fObject: TObject; // always starts off as nil end; 这是我习惯于其他语言的行为,但是我想知道在Delphi中依靠它是否安全?例如,我想知道它是否取决于编译器设置,或者在不同机器上的工作方式是否不同。依靠对象的默认初始化值是正常的,还是在构造函数中显式设置所有实例变量? 至于堆栈(过程级)变量,我的测试表明,布尔化的布尔值是真实的,整数化的是2129993264,未初始化的对象只是无效的指针(即不是nil)。我猜测规范是总是在访问它们之前设置过程级变量?

15
为什么不使用Java初始化局部变量?
Java的设计者是否有任何理由认为不应为局部变量提供默认值?认真地讲,如果实例变量可以被赋予默认值,那为什么我们不能对局部变量做同样的事情呢? 并且还会导致出现问题,如博客文章的此评论所述: 那么,当试图在finally块中关闭资源时,此规则最令人沮丧。如果我在try中实例化资源,但最后尝试关闭它,则会收到此错误。如果我将实例化移动到try之外,则会收到另一个错误,指出它必须在try内。 非常沮丧。

4
默认初始化std :: array?
使用C ++ 11 std::array,我是否可以保证语法std::array&lt;T, N&gt; x;将默认初始化数组的所有元素? 编辑:如果没有,是否有一种语法将对所有数组(包括零大小的数组)起作用,以将所有元素初始化为其默认值? 编辑:在cppreference上,默认的构造函数描述为: (constructor) (implicitly declared) (public member function) default-constructs or copy-constructs every element of the array 所以答案可能是肯定的。但我想根据标准或将来的标准确定这一点。

5
在Java中初始化布尔数组
我有这个代码 public static Boolean freq[] = new Boolean[Global.iParameter[2]]; freq[Global.iParameter[2]] = false; 有人可以告诉我我在这里到底在做什么错,我该如何纠正?我只需要将所有数组元素初始化为布尔型false。谢谢

7
关于C中的数组初始化的困惑
在C语言中,如果初始化这样的数组: int a[5] = {1,2}; 那么所有未显式初始化的数组元素将被隐式初始化为零。 但是,如果我这样初始化一个数组: int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); 输出: 1 0 1 0 0 我不明白,为什么要a[0]打印1而不是0?它是不确定的行为吗? 注意:这个问题是在采访中提出的。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.