C语言字符数组如何初始化?

Python011

C语言字符数组如何初始化?,第1张

C语言允许用字符串的方式对数组作初始化赋值。例如:

static char c[]={'c',' ','p','r','o','g','r','a','m'}可写为:

static char c[]={"C program"}或去掉{}写为:

static char c[]="C program"

当对全体元素赋初值时也可以省去长度说明。例如:static char c[]={`c`,` `,`p`,`r`,`o`,`g`,`r`,`a`,`m`}这时C数组的长度自动定为9。

扩展资料:

数组的使用规则:

1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4}表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1}而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。

3.如不给可初始化的数组赋初值,则全部元素均为0值。

4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5}可写为:static int a[]={1,2,3,4,5}动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

参考资料:

百度百科-数组

chardata[20]

data="hello"

先解释这个为什么是错的,因为data="hello"实际上就是data[0]="hello"是data字符数组的首个字符,很显然不能放字符串。

至于两者的区别,后者可以可以更方便通过指针来访问修改删除元素。

char*data

data="hello"这句中的data是指针变量,指向"hello"这个字符串在内存中的首地址。

不是一个意思.

比如:

int i//这是定义变量i, 类型为int, 现在并没有被初始化 , 未在内存中为其分配一块区域. 不能调用.

int i //定义

i=5//初始化, 赋与这个变量一个有意义的值

int i=5 //定义并初始化