
类型符 数组名[常量表达式];常量和符号常量,不能包含变量,也就是说,C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。int a[3+5]; //合法
int n;
scanf("%d",&n);
int a[n]; //不合法#includeint main(){int nums[10];
for(int i=0;i<10;i++){scanf("%d",&nums[i]);
}
return 0;
} 0 NULL '\0'//1、定义数组时,对全部数组元素赋初值。
int a[10]={0,1,2,3,4,5,6,7,8,9};
//2、只给数组中部分元素赋值,系统自动给剩余元素赋初值为0.
int a[10]={0,1,2,3,4};
//3、在对数组赋初值时,由于数据个数已经确定,因此可以不指定数组长度。
int a[5]={1,2,3,4,5};
可以写成
int a[]={1,2,3,4,5};二维数组数组名 [常量表达式][常量表达式];int a[3][4];//行下标范围[0,2] 列下标范围[0,3];
a[3][4]=3;//错误,不存在a[3][4]元素1、分行给二维数组赋初值
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
2、将数据都写在一个括号内,按数组元素在内存中的排列顺序对各元素赋初值
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
3、可以对部分元素赋初值
int a[3][4]={{1},{2},{3}};
等价于->int a[3][4]={{1,0,0,0},{2,0,0,0},{3,0,0,0}};
int a[3][4]={{1},{2},{}};
等价于->int a[3][4]={{1,0,0,0},{2,0,0,0},{0,0,0,0}};
4、如果对全部元素赋初值,则定义数组时对第一维长度可以不指定,但第二维长度必须指定。
int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
5、在定义时,也可以只对部分元素赋初值而省略第一维的长度,但应分行赋值。
int a[][4]={{0,0,3},{},{0,10}};//编译系统判断数组有3行4列字符数组int c[10];
c[0]='a';//合法char c[10]={'a','b','c'};//其余未初始化的元素值为空字符('\0')int main(){char c[10]={'I',' ','a','m','a','g','i','r','l','!'};
for(int i=0;i<10;i++){printf("%c",c[i]);
}
printf("\n");
return 0;
}字符串定义:在C语言中,将字符串作为字符数组来处理,字符串中的字符是逐个存放在字符数组元素中的。
字符串结束标志:空字符'\0'
'\0'作为结束标志。如果字符数组中存在若干字符,前面9个字符都不是空字符,而第10个字符是空字符,则认为数组中有一个字符串,其有效字符为9个。也就是说,在遇到空字符时,表示字符串结束,把它前面的字符组成一个字符串。"C program"共有9个字符。字符串是存放在一维数组中的,在数组中它占10个字节,最后一个空字符是系统自动加上的。'\0',可以不包含空字符。初始化字符串
1、用字符串常量来初始化字符数组
char c[]={"I am happy!"};
char c[]="I am happy!";
等价于->char c[]={'I',' ','a','m','','h','a','p','p','y','\0'};
不等价于->char c[]={'I',' ','a','m','','h','a','p','p','y'};%c%schar c[]={"China"};
scanf("%s",c);
printf("%s\n",c);//输出的字符串不包括空字符
//利用一个scanf函数输入多个字符串,则应在输入时以空格分隔,系统把空格字符作为输入的字符串之间的分隔符
char str1[4],str2[5],str3[6];
scanf("%s%s%s",str1,str2,str3);
输入数据:How are you?#include)puts函数——输出字符串puts(字符数组名);gets函数——输入字符串,并且得到一个函数值,该函数值是字符数组的起始地址。gets(字符数组名);puts和gets只能输出输入一个字符串char ch=getchar();putchar(ch);strcat函数——字符串连接函数,结果放在字符数组1中,连接时,系统自动将字符数组1中的空字符取消,得到字符数组1的地址。strcat(字符数组1,字符数组2);strcpy函数——字符串复制函数,将字符串2复制到字符数组1中去。字符数组1必须是数组名形式,字符串2可以是数组名,也可以是字符串常量。strcpy(字符数组1,字符串2);strncpy函数——将字符串2前面的n个字符复制到字符数组1中去。strncpy(字符数组1,字符串2,n);strcmp(字符串1,字符串2);strlen函数——测字符串长度的函数,函数值为字符串实际长度,不包含空字符。也可以直接测字符串常量的长度。strlen(字符数组);strlwr(字符串);strupr(字符串);你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧