当前位置:首页 » 编程语言 » c语言初始化数组

c语言初始化数组

发布时间: 2022-01-09 16:52:20

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 ;};

(1)c语言初始化数组扩展阅读

在程序里,数据初始化也可能在没有由明确的语法来实现的情况下进行。例如说,如果一个静态变量在没有初始化(即未指定初值)的情况下被声明,则:对于原生数据类型:以对应类型的零值进行初始化;对于类中的静态对象:由其默认的构造函数来进行初始化。

每一个初始化部分里面的代码在程序运行后,或库的begin-end块运行之前。delphi使用对单元相关树的深度优先遍历来运行初始化部分。换句话说,就只在一个单元的初始化代码运行前,delphi就运行了特他使用的每一个单元的初始化部分。每一个单元仅初始化一次 。

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

下面3种方法:

1.int arr[10]={0};

如果只对数组的一部分进行初始化,则编译器将把其他元素设置为0。因此,当只将第一个元素初始化为0时,编译器会自动将其他元素设为0 (就像前一句说的那样)。

2.int arr[31]={};

3.用memset函数在程序开始时初始化数组。比如:

int arr[1024];

memset(arr, 0, 1024); //清零

(2)c语言初始化数组扩展阅读:

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:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法 ,它通常为新申请的内存做初始化工作。

❸ 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";//错误,字符数组的赋值只能按元素一一赋值

❹ C语言之一维数组的初始化

静态变量就是退出函数也不会释放内存空间的变量,他一直作用到程序结束,
每一次运算时,静态变量使用最近一次保留的值。
不加static其实就是默认auto int a;这是自动变量,退出函数时释放内存空间,下一次使用该变量会重新分配空间,从新定义存储值。

❺ c语言数组定义了数值之后可以重新初始化吗

不可以。
二维数组如果只写一个下标,代表一行的起始地址,不代表具体元素。
那里可是这样写一维,是因为字符串的操作函数正好要的是地址。

❻ 简单的c语言数组初始化

一般对数组初始化可以用以下方法实现:
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。
3、如果想使一个数组的元素值全部为0,可以用下面的方法:
static int a[10]={0,0,0,0,0,0,0,0,0,0};
不能用:
static int a[10]={0*10};
如果对static型数组不赋初值,系统会对定义的所有数组元素自动赋以0值。
4、在对全部数组元素赋初值时,可以不指定数组长度。

❼ c语言数组初始化

数组的编号是从0开始的,所以当i=2时,score[2]实际是第三个数,前面还有score[0]和score[1]两个数。

❽ c语言数组初始化问题

初始化
赋值
是不同的概念
希望楼主每天对这两个概念默念一遍
在任何基础C编程书中都有介绍这两个概念的

❾ C语言数组初始化问题

memset(a, 0, sizeof(a))这是库函数,构成了C语句,要在执行时操作,所以要占用执行时间。而a[10000]={0}是编译器完成的,就是说代码编译完成后那10000个元素就成为0了,执行的时候里面的0已经是现成的。但前者可以把10000个元素预置成任何一个合法的值,而后者要初始化成1的就得写10000个1,那谁也不想干。只有初始化为0时可以a[10000]={0} 这样写,如果写成a[10000]={1}想达到初始化为全1是徒劳的,除了a[0]=1外,其余的还是0……

❿ c语言如何初始化数组

举例说明:
第1种定义部分初始化:int a[4]={ 1,2,3,4 };
第2种运行时初始化:int a[4],i; for ( i=0;i<4;i++ ) a[i]=i+1;
第3种运行时手动输入值初始化:int a[4],i; for ( i=0;i<4;i++ ) scanf("%d",a+i);
第4种读取文件初始化:
int a[4]; FILE *fp; if ( fp=fopen("Init.dat","rb") ) { fread(a,sizeof(a),1,fp); fclose(fp); }

热点内容
上传文件文件夹找不到 发布:2024-09-20 00:26:32 浏览:914
承台箍筋加密区 发布:2024-09-20 00:26:31 浏览:227
笔记本什么配置能流畅运行cf 发布:2024-09-20 00:14:19 浏览:951
实测华为编译器 发布:2024-09-19 23:50:52 浏览:821
linux汇总 发布:2024-09-19 23:46:39 浏览:452
阿里云服务器环境搭建教程 发布:2024-09-19 23:21:58 浏览:837
黄色文件夹图标 发布:2024-09-19 23:19:22 浏览:684
mysql数据库导出导入 发布:2024-09-19 23:00:47 浏览:183
lua脚本精灵 发布:2024-09-19 23:00:41 浏览:659
任务栏文件夹图标 发布:2024-09-19 22:54:25 浏览:101