C语言数组怎么初始化,c语言数组初始化大括号能空吗
C语言数组的初始化表示方法
C语言数组的初始化表示方法有4种,分别是:
1、定义的同时进行初始化,我们同样用数组的初始化引出结构体的初始化,我们知道数组在定义的同时进行初始化的代码如下:
int nums[] = {1, 3, 5};
由此可推出结构体在定义的同时进行初始化的代码如下:
struct Person p = {"lee", 23, 1.8};
2、先定义再进行初始化,这种初始化方法其实昨天的内容里已经写过了,代码如下:
struct Person p;
p.name = "lee";
p.age = 23;
p.height = 1.8;
我们知道数据定义好后就不能对其进行一次性初始化了,比如如下代码是编译不通过的。
int nums[3];
num = {1, 2, 3}
3、第三种结构体比较例外,它可以这样做,只不过需要对其进行一下强制类型转换,代码如下:
struct Person p;
p = (struct Person){"xq, 8, 8.8}
4、指定将数据赋值给指定的属性,数组中我们见过这种写法,代码如下:
int nums[3] = {[0] = 2, [2] = 1, [1] = 2};
我们可以为不同的索引指定值,并不需要一定要按顺序来,所以数组可以,结构体是否可以呢,当然,代码如下:
struct Person p = {.height = 1.8, .name = "lee", .age = 23};
C语言中数组初始化是什么?
在定义数组的同时,给各数组元素赋值,这称为数组的初始化。
当然,在定义数组时并未给数组元素赋值,然后在程序中利用循环也可以为数组元素赋值,这也可以叫做“初始化”。
c语言,结构体数组怎么初始化
对于数组元素很多的初始化可以使用初始化列表方法。在c语言中用于进行初始化的程序结构则称为初始化器或初始化列表。
1、初始化器
初始化器是声明器的可选部分,它由一个'='以及其后的一个表达式(或含有多个以','隔开的带圆括号表达式的单一列表)所组成。后面这一列表有时也被称为“初始化(器)列表”(initializer list)或”初始化列表”(initialization list)。
例:
public class Curry
{public string MainIngredient { get; set; }
public string Style { get; set; }
public int Spiciness { get; set; }}
2、初始化列表
一个类/结构的构造函数可以在定义中于构造函数体前包含一个初始化列表,用以给类/结构的元素赋初值。
例:
class foo
{public:
foo(string s, int i):name(s), id(i){} ; // 初始化列表
private:
string name ;int id ;};
扩展资料
在程序里,数据初始化也可能在没有由明确的语法来实现的情况下进行。例如说,如果一个静态变量在没有初始化(即未指定初值)的情况下被声明,则:对于原生数据类型:以对应类型的零值进行初始化;对于类中的静态对象:由其默认的构造函数来进行初始化。
每一个初始化部分里面的代码在程序运行后,或库的begin-end块运行之前。delphi使用对单元相关树的深度优先遍历来运行初始化部分。换句话说,就只在一个单元的初始化代码运行前,delphi就运行了特他使用的每一个单元的初始化部分。每一个单元仅初始化一次 。
参考资料来源:百度百科——初始化
百度百科——初始化列表
百度百科——初始化器
C语言数组 初始化
我来一一解答,希望解答的合适请多加点分,谢谢
1,C语言有的数据类型都可以作为数组的类型,不光是int,char
float
double
long
指针
结构等等都可以是数组的类型。
2,这样理解是正确的,数组中的每一个元素和这个数组类型一样的变量类型相同,取值范围相同,只是引用方式不一样。
3,是的,数组的性质都是一样的,不光是char,所有类型都符合这一规律
4,那么char型变量和数组用什么值给其初始化比较安全?这种提问没有见过,只能说不初始化会使数组指向其他内存单元,导致不确定的值。最好是在数组初始化的时候赋给你需要用的值
还有什么问题可以Hi我
在C语言中数组的初始化是如何定义的?
变量可以在定义的时候初始化,数组也可以。array[5]={1,2,3,4,5};
在定义数组时,可以用放在一对大括号中的初始化表对其进行初始化。初始化值的个数可以和数组元素个数一样多。
如果初始化的个数多于元素个数,将产生编译错误;如果少于元素个数,其余的元素被初始化为0。
如果维数表达式为空时,那么将用初始化值的个数来隐式地指定数组元素的个数,如下所式:nt array[]={1,2,3,4,5};
这也表明数组 array元素个数为5。main()
}
int i,array[]={1,3,5,7,9,11}; for(i=0;i5;
printf(%d,array[i]); r(i=0;i5;i++) p
printf(\n);
最终结果为13579
C语言字符数组如何初始化?
1、直接逐个初始化字符数组:
字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。
char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};
注意:如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即'\0'
)。
2、用字符串常量来初始化字符数组:
在c语言中,将字符串作为字符数组来处理。因此可以使用字符串来初始化字符数组。
char str[]={"I am happy"};
也可以省略花括号。
char str[]="I am happy";
但是,上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值,字符数组的赋值只能对其元素一一赋值,下面的赋值方法是错误的。
char str[];
str="I am happy";//错误,字符数组的赋值只能按元素一一赋值