数组初始化

时间:2024-06-03 06:24:30编辑:奇事君

c语言数组的初始化有哪几种

我来一一解答,希望解答的合适请多加点分,谢谢
1,C语言有的数据类型都可以作为数组的类型,不光是int,char
float
double
long
指针
结构等等都可以是数组的类型。
2,这样理解是正确的,数组中的每一个元素和这个数组类型一样的变量类型相同,取值范围相同,只是引用方式不一样。
3,是的,数组的性质都是一样的,不光是char,所有类型都符合这一规律
4,那么char型变量和数组用什么值给其初始化比较安全?这种提问没有见过,只能说不初始化会使数组指向其他内存单元,导致不确定的值。最好是在数组初始化的时候赋给你需要用的值
还有什么问题可以Hi我


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语言数组的初始化表示方法

不是inta[] 而是例如int a[10]这种。括号内一定要有个常量数字。我们可以这样定义#define N 5int a[N]这表明了数组名为a;数组有5个元素;分别是a[0]到a[4];对于数组来说;数组是变量的集合,因此数组也具有与变量相同的数据类型和储存类型。数组的类型就是它所有的变量的类型。在定义数组时,应在数组名前对数组的类型加以确定。如上面的int a[10];则表明了数组内元素均为整形。所有当表示浮点型可以定义为例如float a[10]。 举例如下:扩展资料数组名是由用户命名的C语言标识符,要遵循标识符命名规则。数组名表示数组存储区域的首地址。数组的首地址也就是第一个元素的地址。数组名是一个地址常量,不能对它赋值。数组名后是由方括号括起来的常量表达式,不能使用其他括号

Java数组初始化,这三种方式有什么区别

创建数组的三种方式:其实分为2类,一种是静态的创建,如方式一。一种是动态的创建,只不过根据写法的不同分为方式二和方式三:

[java] view plain copy
public static void main(String[] args) {
// 1.方式一 声明 分配空间并赋值
int[] arr1 = {1,2,3};
// 2.方式二 显示初始化
int[] arr2;
arr2 = new int[]{1,2,3};
// 3.方式三 显示初始化()
int[] arr3;
arr3 = new int[3];
}

他们的区别,方式一:在声明的时候直接就已经分配空间,并赋值,方式一是不能写成如下这种形式的。


[java] view plain copy
int[] arr1;
arr1 = {1,2,3};//错误写法 编译不同过
方式二和方式三,声明和内存分配是分开的,如上面的例子,


[java] view plain copy
int[] arr2; 和 int[] arr3;
这一步是在栈空间分配一个引用,存放的是一个引用,null


[java] view plain copy
arr2 = new int[]{1,2,3};arr3 = new int[3];
到这一步的时候jvm才开始在内存堆区域分配空间,并赋值,方式二直接赋值 1,2,3 方式三 默认初始化,基本类型是 0 布尔类型是 false 引用类型为null,


注:内存一旦分配不能改变,所有说数组长度固定


c语言中一维数组的初始化是什么意思,有什么作用??

一维数组初始化就是给一维数组赋初值,作用就是申明的这个一维数组有了一个确定的值,从而可以得到具体应用。一个数组申明后,如果没有赋值,那么只是分配了内存空间,没有具体的值,也可以说是空,其组成是“\0”也就是NULL,无法在实际中使用。C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准。起初,C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》。这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。

在C语言编程中,定义一个数组时要不要初始化?

不是不能初始化,是初始化的不对。另外,数组最好用memset初始化。(1)在定义数组时对数组元素赋以初值。如:static int a[10]={0,1,2,3,4,5,6,7,8,9};经过上面的定义和初始化后,a[0]=0,a[1]=1,… ,a[9]=9。(2)初始化时可以只对一部分元素赋初值。例如:static int a[10]={0,1,2,3,4};定义的数组有10个元素,但只对其中前5个元素赋了初值,后5个元素初值为0。扩展资料数组的三种初始化方式1、静态初始化除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。例 int[] a={1,2,3};//静态初始化基本类型数组Man[] mans={new Man(1,1),new Man(2,2)};//静态初始化引用类型数组2、动态初始化数组定义与为数组元素分配空间并赋值的操作分开进行。int[] a1=new int[2];//动态初始化元素,先分配空间。a1[0]=1;//给数组元素赋值a1[2]=2;3、数组的默认初始化数组是引用类型,他的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。实例:int a2[]=new int[2];//默认值0,0boolean[] b=new boolean[2];//默认值 false,falseString[] s=new String[2];//默认值null

c语言中怎么把一维数组初始化为全零啊,不用循环

下面3种方法:1.int arr[10]={0};如果只对数组的一部分进行初始化,则编译器将把其他元素设置为0。因此,当只将第一个元素初始化为0时,编译器会自动将其他元素设为0 (就像前一句说的那样)。2.int arr[31]={};3.用memset函数在程序开始时初始化数组。比如:int arr[1024];memset(arr, 0, 1024); //清零扩展资料:memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组,c:是赋给buffer的值,count:是buffer的长度。函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法 ,它通常为新申请的内存做初始化工作。参考资料:memset-百度百科

c语言有关二维数组变量初始化

例如对整型二维数组a[3][2]赋值
方法一:
在定义的同时赋值
int a[3][2]={0};//所有数组元素均为0

方法二:
int a[3][2]={1,2,3,4,5,6};//常规的赋值方法

方法三:
int a[3][2]={{1,2},{3,4},{5,6}};//分行的赋值方法

方法四:
int a[3][2]={{1,2},{0},{3}};//部分赋值方法,第一行元素的值分别为1,2,第二行元素值都是0,
第三行第一个元素值为3,第二个元素值为0

方法五:
int a[3][2];/先定义
for(i=0;i<=3;i++) //用双重for循环赋值,i,j表示二维数组下标
for(j=0;j<=2;j++)
scanf("%d",&a[i][j]);

希望对你有所帮助。


如何初始化java数组

静态初始化 和动态初始化

一维数组的声明方式:
type var[]; 或type[] var;

声明数组时不能指定其长度(数组中元素的个数),

Java中使用关键字new创建数组对象,格式为:
数组名 = new 数组元素的类型 [数组元素的个数]

初始化:
1.动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;
2.静态初始化:在定义数字的同时就为数组元素分配空间并赋值;
3.默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化。
实例:


TestD.java(动态):

程序代码:
public class TestD { public static void main(String args[]) { int a[] ; a = new int[3] ; a[0] = 0 ; a[1] = 1 ; a[2] = 2 ; Date days[] ; days = new Date[3] ; days[0] = new Date(2008,4,5) ; days[1] = new Date(2008,2,31) ; days[2] = new Date(2008,4,4) ; } } class Date { int year,month,day ; Date(int year ,int month ,int day) { this.year = year ; this.month = month ; this.day = day ; } }


TestS.java(静态):

程序代码:

public class TestS
{
public static void main(String args[]) {
int a[] = {0,1,2} ;
Time times [] = {new Time(19,42,42),new Time(1,23,54),new Time(5,3,2)} ;
}
}

class Time
{
int hour,min,sec ;
Time(int hour ,int min ,int sec) {
this.hour = hour ;
this.min = min ;
this.sec = sec ;
}
}


java中怎么数组初始化?

一维数组

1)
int[] a; //声明,没有初始化

2)
int[] a=new int[5]; //初始化为默认值,int型为0

3)
int[] a={1,2,3,4,5};
//初始化为给定值
4)
int[] a=new int[]{1,2,3,4,5}; //同(3)

int[] a=new int[5]{1,2,3,4,5};
//错误,如果提供了数组初始化操作,则不能定义维表达式
5)
int[] a;
a=new int[5]; //正确,同(2)一样

int[] a;

a={1,2,3,4,5}; //错误数组常量只能在初始化操作中使用,如(3)

6) int a[];
a[0]=1;
//错误,因为数组没有初始化,不能赋值a[1]=2; 二维数组

1)
int[][] a;
//声明,没有初始化

2) int[][] a=new int[2][3];
//初始化为默认值,int型为0

3)
int[][] a={{1,2},{2,3},{3,4}};
//初始化为给定值
int[][] a={{1,2},{2,3},{3,4,5}};
//没有错,数组空间不是连续分配的,所以不要求每一维的大小相同
4)
int[][] a=new int[2][];
a[0]=new int[3];
//a[0]其实就是一个数组a[1]=new int[4];
//每一维的大小可以不一样
;

5)
int[][] a=new
int[][]{{1,2},{2,3},{3,4,5}};
//同(3)


上一篇:多吃葡萄有什么好处

下一篇:泰坦尼克号吻戏