首页技术c语言数组定义和赋值 C语言如何定义数组

c语言数组定义和赋值 C语言如何定义数组

编程之家2026-06-08976次浏览

大家好,关于c语言数组定义和赋值很多朋友都还不太明白,今天小编就来为大家分享关于C语言如何定义数组的知识,希望对各位有所帮助!

c语言数组定义和赋值 C语言如何定义数组

C语言中如何定义数组

C语言中,同变量一样;数组也必须先定义后使用。

一维数组的定义形式:

类型标识符数组名[常量表达式];例如int a[10];其中a为地址常量。

如变量的定义一样,int a;double a;float a等;数组的定义只是把后面的变量名改为数组名而已。

int a[10]就是定义了一个数组名为a的数组;此数组有10个元素。其中各元素从a[0]到a[9];并没有a[10]元素。下面列举一个。

扩展资料常量表达式可以包括字面常量和符号常量;但不能包含变量。例如对下面定义是错误的

c语言数组定义和赋值 C语言如何定义数组

int n=5

int a[n]

可以修改为

#define N 5

int a[N]

其中对二维及多位数组定义可以类推

c语言数组定义和赋值 C语言如何定义数组

int a[x][y][z][...]其中 x,y,z为数字。

参考资料百度百科-C语言

c语言结构体数组赋值

(1)用字符常量逐个初始化数组。例如:

char a[8]={'i','l','o','v','e','y','o','u'};

把8个字符依次分别赋给c[0]~c[7]这8个元素。

如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。如果花括号中提供的初值个数(即字符个数)大于数组长度,则出现语法错误。

如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即'\0')。

如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。

例如:char c[]={‘c’,‘’,‘p’,‘r’,‘o','g','r','a','m'};

这时c数组的长度自动定为9。也可以定义和初始化一个二维字符数组,例如:

char diamond[5][5]={{'','','#'},{'','#','','#'},{'#','','','','#'},

{'','#','','#'},{'','','#'}};用它代表一个菱形的平面图形。

(2)字符串常量初始化数组。例如:

char c[]={‘c’,‘’,‘p’,‘r’,‘o','g','r','a','m'};

可写为:char c[]={"C program"};

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

注意:此时数组c的长度不是9,而是10。因为字符串常量的最后由系统加上一个'\0'。上面的初始化与下面的初始化等价。

char c[]={‘c’,‘’,‘p’,‘r’,‘o','g','r','a','m','\0'};

扩展资料:其定义的一般形式是:char数组名[数据长度]

例如:

char c[10];

c[0]='I';c[1]='';c[2]='l';c[3]='o';c[4]='v';c[5]='e';c[6]='';c[7]='y';c[8]='o';c[9]='u';

以上定义了c为字符数组,包含10个元素。

由于字符型数据是以整数形式(ASCII代码)存放的,因此也可以用整型数组来存放字符数据,例如:

int c[10];

但这时每个数组元素占2个字节的内存单元,浪费存储空间。

字符数组也可以是二维或多维数组,例如:

char c[5][10];

即为二维字符数组。

初始化

字符数组的初始化与数值型数组初始化没有本质区别。但它除了可以逐个给数组元素赋予字符外,也可以直接用字符串对其初始化。

输入输出

字符数组的输入

(1)用getchar()或scanf()的'%c'格式符对数组进行字符赋值。例如,对于数组a[10]:用getchar()赋值:

for(i=0;i<10;i++)

a<i>=getchar();

用scanf()赋值:

for(i=0;i<10;i++)

scanf("%c",&a<i>);

(2)用scanf()的'%s'格式对数组赋值。还是对于数组a[10]:

scanf("%s",a);

scanf("%s“,&a[0]);

输入”C program“并回车时,a数组会自动包含一个以”\0“结尾的字符串”C program“。

字符数组的输出

(1)用putchar()或printf()的‘%c’格式符对数组进行字符赋值。例如,对于数组a[10]:用putchar()赋值:

for(i=0;i<10;i++)

a<i>=putchar();

用printf()赋值:

for(i=0;i<10;i++)

printf("%c",a<i>);

输出结果为:

c program

(2)用printf()的'%s'格式对数组赋值。还是对于数组a[10];

printf("%s",a);

输出结果为:

c program

参考资料:

百度百科——字符数组

C语言 一维数组赋值

一位数组赋值的几种方式

int

a[10]={1,2,3,4,5,6,7,8,9,10};

.一般初始化,例:

int

a[10]={3,10,5,3,4,5,6,7,8,9};

int

array[5]={2,3,4,5,6};

其结果是给每一个数组元素都指定了初值。

2.部分元素初始化,其余元素均为零。

例:

int

a[10]={7,8,9,67,54};

仅给前5个元素赋初值,后5个元素初值为0。

3.全部元素均初始化为1。

int

a[10]

=

{1,1,1,1,1,1,1,1,1,1};

不允许简写为 int

a[10]={1};或int

b[10]={1*10};

同学们想一想上述定义a和b数组后,初始化结果是什么?

注意:当程序不给数组指定初始值时,编译器作如下处理:

(1)部分元素初始化,编译器自动为没有初始化的元素初始化为0。

(2)数值数组如果只定义不初始化,编译器不为数组自动指定初始值,即初值为一些随机值(值不确定)。

4.如果全部元素均指定初值,定义中可省略元素的个数。

例:

int

a[5]={9,28,3,4,5};可以写为:

int

a[

]={9,28,3,4,5};

数组元素的引用

c语言规定,不能整体引用数值数组,只能逐个引用数组元素;

元素引用方式:数组名[下标表达式]

例:a[0]

=

a[5]

+

a[7]

-

a[2*3]

“下标表达式”可以是任何非负整型数据。

特别强调:1.一个数组元素,实质上就是一个变量,它具有和相同类型单个变量一样的属性,可以对它进行赋值和参与各种运算。

2.在c语言中,数组作为一个整体,不能参加数据运算,只能对单个的元素进行处理。

OK,关于c语言数组定义和赋值和C语言如何定义数组的内容到此结束了,希望对大家有所帮助。

云野擦汗先祖在哪(云野哈欠先祖位置)AI帮个忙 AI文案写作哪个工具好