1数组
1.1 一维数组的初始化
数组包括
数组的建立:在创建数组时,必须定义数组的大小和类型,数组的大小不能为零,数组中元素类型都是相同的。
例:
int arr[10]; //[ ]内必须是常量
数组的初始化:
例:
int arr1[3] = {1, 2, 3};
int arr2[] = {1, 2, 3};//在这里,我们arr[3]里边的数字可以不用写;
int arr3[3] = {1, 2};//也是可以的,只是把最后一个数初始化为0了而已
int arr4[3] = {1, 2, 3, 4};//是不可以的,不能超过数组长度
1.2 数组的使用
例:
#include<stdio.h>
int main()
{
int arr[10] = { 0 };
int i = 0;
for (i = 0; i < 10; i++) //i<11是不可以的,不可以越界访问
{
arr[i] = i;
}
return 0;
}
注意:数组是使用下表来引用的,下表是从0开始的。
2 二维数组
2.1 二维数组的创建和初始化
二维数组可以想象为一个表格
int arr[3] [4];
这表示定义了一个3行4列的二维数组,如下图所示。
有以下几种表示二维数组元素的方法:
int brr [3] [4] ={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int crr [3] [4] = {1,2,3,4,5,6,7,8,9,10,11,12};
2.2 二维数组的使用
二维数组的使用也是通过下表方式。
#include<stdio.h>
int main()
{
int arr[3][5] = { 0 };
int i = 0;
int j = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 5; j++)
{
arr[i][j] = i * 5 + j + 1;
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
3 字符数组
3.1 字符数组的初始化
#include <stdio.h>
// C语言没有字符串类型,通过字符数组模拟
// C语言字符串,以字符‘\0’, 数字0
int main()
{
//不指定长度, 没有0结束符,有多少个元素就有多长
char buf[] = { 'a', 'b', 'c' };
printf("buf = %s\n", buf); //乱码
//指定长度,后面没有赋值的元素,自动补0
char buf2[100] = { 'a', 'b', 'c' };
char buf[1000]={“hello”};
printf("buf2 = %s\n", buf2);
//所有元素赋值为0
char buf3[100] = { 0 };
//char buf4[2] = { '1', '2', '3' };//数组越界
char buf5[50] = { '1', 'a', 'b', '0', '7' };
printf("buf5 = %s\n", buf5);
char buf6[50] = { '1', 'a', 'b', 0, '7' };
printf("buf6 = %s\n", buf6);
char buf7[50] = { '1', 'a', 'b', '\0', '7' };
printf("buf7 = %s\n", buf7);
//使用字符串初始化,编译器自动在后面补0,常用
char buf8[] = "agjdslgjlsdjg";
//'\0'后面最好不要连着数字,有可能几个数字连起来刚好是一个转义字符
//'\ddd'八进制字义字符,'\xdd'十六进制转移字符
// \012相当于\n
char str[] = "\012abc";
printf("str == %s\n", str);
return 0;
}
6.2.3 字符串的输入输出
由于字符串采用了’\0’标志,字符串的输入输出将变得简单方便。
3.2 字符数组的使用
#include <stdio.h>
int main()
{
char str[100];
printf("input string1 : \n");
scanf("%s", str);//scanf(“%s”,str)默认以空格分隔
printf("output:%s\n", str);
return 0;
}