数组初始化
一、数组的声明
#include<stdio.h>
int main(){
float candy[365];//通过声明告诉编译器数组元素的个数和类型
char code[12];//内含12个char类型元素的数组
int states[50];//内含50个int类型元素的数组
/*数组的编号从0开始,因此candy[0]代表数组第一个元素
candy[364]代表数组的第365个元素*/
return 0;
}
二、数组的初始化(对于自动存储类型【数组在函数内部声明且声明时未使用关键字static】必须先初始化,才能使用,对于一些其他的存储类别的变量和数组,若声明时未初始化,编译器会自动把他们的值设为0)
#include<stdio.h>
#define SIZE 4
int main(){
/*完全初始化*/
int powers[8]={1,2,4,8,16,32,64};
/*部分初始化*/
int some_data[SIZE]={12,13};//推荐使用符号常量SIZE表示数组大小
/*省略方括号里的数字,让编译器自动匹配数组大小和初始化列表中的项数*/
const int days[]={31,28,31,30,31};//针对这样的数组的大小用sizeof(days)/sizeof(days[0])来计算更合适
for(int i=0;i<SIZE;i++){
printf("%2d%14d\n",i,some_data[i]);//如果部分初始化,剩余元素就会被初始化为0
}
for(int i=0;i<sizeof days/sizeof days[0];i++){
printf("%2d %d\n",i+1,days[i]);
}
return 0;
}
三、使用初始化器
#include<stdio.h>
#define MONTHS 12
int main(){
int days[MONTHS]={31,28,[4]=31,30,31,[1]=29};/*下标为4,即第五个元素指定赋值为31,
那么后面的值也随之被初始化为30,31,days[1]由于后面被初始化为29,覆盖了之前初始化为28 */
int i;
for(i=0;i<MONTHS;i++){
printf("%2d %d\n",i+1,days[i]);
}
return 0;
}
四、数组的赋值
/*数组元素的赋值*/
#include<stdio.h>
#define SIZE 5
int main(){
int a[SIZE]={2,3,4,5,6};//正确的初始化
int b[SIZE];
b=a;/*C不允许把数组作为一个单元赋给另一个数组*/
b[SIZE]=a[SIZE];/*数组下标越界,确保数组下标在0~SIZE-1的范围内*/
b[SIZE]={5,6,8,2};/*除初始化之外,不允许使用花括号列表的形式赋值*/
b[0]=1;//正确的赋值
b[1]=2;
printf("%d %d",b[0],b[1]);
return 0;
}
五、指定数组的大小
#include<stdio.h>
int main(){
float b[0];//不允许这样,数组大小必须大于0
float c[2.5];//不允许,数组大小必须为整数
double m[(int)2.5];//可以,被强制转化为整数
float d[2*3+1];//可以
float e[sizeof(int)+1];//可以
int n;
scanf("%d",&n);
int a[n];//C99允许这样
printf("%d\n",sizeof(a));
return 0;
}
相关阅读
(1)借助sizeof()函数 :#include<stdio.h>int main(){ // 定义一个整型数组, 并进行初始化赋值9个数据 : int arr[] = {1,2,3,4,
JSON数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。如图 1‑5所示:图1-5
取值赋值常用的方法,html(),text(),val() 单独说说textarea .它是表单元素,val()可用 .它是闭合标签,html(),text()可用 这三个都可
方法一:var a = [1,2,3]; var b=[4,5] a = a.concat(b); console.log(a); //此处输出为 [1, 2, 3 ,4 ,5]方法二:// ES5 的写法 var
需求:两个字符串合并(如果想去重复,参考下一篇--数组去重复及记录重复个数)//方法一 Arrays类String[] a = {"A","B","C"};String[] b