一维数组的创建和初始化
数组的创建
数组是一组相同类型元素的集合。
数组的创建方式:
数组的元素类型 数组名[整型常量表达式];
#include<stdio.h>
int main()
{
//创建一个数组-存放整形-10个
int arr[10];
//存放五个字符
char arr2[5];
return 0;
}
//注:数组创建,[]中要给一个常量才可以,不能使用变量
数组的初始化
数组的初始化是指,在创建数组的同时给数组的内容一些合理的初始值(初始化);
#include<stdio.h>
int main()
{
//int arr[10] = { 1,2,3 };//不完全初始化,剩下的元素默认初始值为0
//char arr1[3]={'a',98,'c'};
//char arr2[5] = { 'a','b','c' }; //arr1与arr2相同
//char arr3[5] = "ab"; //放了三个值 a b \0
char arr4[] = "abcdef";//放了7个元素
printf("%d\n", sizeof(arr4));//7
//sizeof 计算arr4所占空间的大小
//7个元素 -char 7*1=7
printf("%d\n", strlen(arr4));//6
//strlen 求字符串长度 -'\0'之前的字符个数
//遇到\0停止 计算长度\0不算在内
return 0;
}
strlen与sizeof
1.strlen和sizeof没有什么关联
2.strlen是求字符串长度的 -只能针对字符串求长度 -库函数 -使用得引用头文件
3.sizeof是计算变量,数组,类型的大小,单位是字节 -操作符
#include<stdio.h>
int main()
{
char arr1[] = "abc"; //a b c \0
char arr2[] = { 'a','b','c' }; //a b c
printf("%d\n", sizeof(arr1));//4
printf("%d\n", sizeof(arr2));//3
printf("%d\n", strlen(arr1));//3
printf("%d\n", strlen(arr2));//随机值
return 0;
}
一维数组的使用
对于数组我们之前介绍了一个操作符:[] 下标引用操作符,它其实就是数组访问的操作符
#include<stdio.h>
int main()
{
char arr[] = "abcdef";
//打印d
//printf("%c\n", arr[3]);
//打印abcdef
int i = 0;
int len = strlen(arr);
for (i = 0; i < len; i++) //strlen默认返回一个无符号整形,int是有符号整型
{
printf("%c ", arr[i]);
}
return 0;
}
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,0 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
总结:1.数组是使用下标来使用的,下标是从0开始的
2.数组的大小可以通过计算得到
一维数组在内存中的存储
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
for (i = 0; i < sz; i++)
{
printf("&arr[%d]=%p\n", i, &arr[i]);
}
return 0;
}
数组在内存中是连续存放的
二维数组的创建和初始化
二维数组的创建
#include<stdio.h>
int main()
{
int arr[3][4];
char ch[5][6];
return 0;
}
二维数组的初始化
#include<stdio.h>
int main()
{
int arr[3][4] = { {1,2,3},{4,5} };
int arr2[][4] = { {1,2,3,4},{5,6,7,8} }; //行可以省略,列不可以省略
return 0;
}
二维数组的使用
#include<stdio.h>
int main()
{
int arr[3][4] = { {1,2,3},{4,5} };
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 4; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
二维数组在内存中的存储
#include<stdio.h>
int main()
{
int arr[3][4] = { {1,2,3},{4,5} };
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 4; j++)
{
printf("&arr[%d][%d]=%p\n", i,j,&arr[i][j]);
}
}
return 0;
}
二维数组在内存中也是连续存储的
标签:arr,int,includeint,数组,printf,main From: https://blog.51cto.com/u_15848198/5893818