在C语言中我们经常用到数组,这其中有很多我们需要了解并且注意的地方。以下是我学习数组之后的一个简单总结。
这里我们详细说明一维数组和二维数组的相关知识。
一维数组
一维数组的创建
数组是一组相同类型元素的集合。数组的创建方式:
type_t arr_name [const_n];
例如:int arr[100];或者 char arr[100]等,但像int count = 10;int arr[count];这样的数组是无法正常创建的,所以在这里需要注意的一点是数组创建, []中要给一个常量才可以,不能使用变量。
一维数组初始化
数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。
例如:int arr1[10] = {1,2,3};(数组中有10个元素,前三个元素初始化为1,2,3 后面剩下的7个元素全部默认为0)
//数组中有多少个元素由初始化的内容决定,数组中有4个元素
int arr2[] = {
1,2,3,4};
int arr3[3] = {
1,2,3};
char arr4[3] = {
'a',98, 'c'};
char arr5[] = {
'a','b','c'};
char arr6[] = "abcdef";
//数组在创建的时候如果想不指定数组的确定的大小就得初始化。
//数组的元素个数根据初始化的内容来确定。
//对于下面的代码要进行区分
char arr1[] = "abcd";//数组中存放的是'a' 'b' 'c' 'd' '\0'
char arr2[4] = {
'a','b','c','d'};//数组中存放的是'a' 'b' 'c' 'd'
char*p = "abcdef";//p中存放的是字符'a'的地址//
一维数组的使用
对于数组的使用我们之前学到过一个操作符: [],下标引用操作符。
它其实就是数组访问的操作符。[]需要接收两个操作符就是数组名和下标。
在数组的使用当中需要注意的两点是数组是使用下标来访问的,下标是从0开始。
数组的大小可以通过计算得到。例如 :
int arr[5];
int sz = sizeof(arr)/sizeof(arr[0]);
//其中sizeof的作用就是返回一个对象或者类型所占的内存字节数
一维数组在内存中的存储
看一段代码
int main()
{
int arr[5] = {0};
int i = 0;
for(i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i)
{
printf("&arr[%d] = %p\n", i, &arr[i]);
}
return 0;