一维数组的创建和初始化
数组是一组相同类型元素的集合,在内存中按顺序存放。
type array_name [const_n]
type ->类型
array_name->数组名
const_n 常量表达式,用来指定数组的大小
数组创建实例
int array [10];
[ x ] x可以常量,不能是变量
数组的初始化
int arr1[10] = {1,2,3};
int arr2[] = {1,3,5,7};
char arr3[2] = {‘a’,98,’b’};
char[] = “abcdefg”;
…
数组在创建的时候如果不想指定大小就需要初始化。数组的个数根据初始化的内容来定。
// 内存分配为4字节
char arr1[] = “abc”;
//内存分配为存分配为3字节
char arr2[3] = {‘a’,‘b’,‘c’};
//内存分配为四字节
char *p = “abcdef”;
[],下标引用操作符,用来进行数组访问的操作符。
总结:
1.数组是使用下标来访问的,下标是从0开始的。
2数组的大小是可以通过计算得到的。
int arr[10];
int sz = arr[10]/arr[0];
指针
1.内存中的一个内存单元(字节)对应一个地址。
2.在32位平台上指针的大小是4个字节,64位平台是8个字节。
所以我们在C语言中取出某个变量的地址。
int n = 10;
&n; //取出n的地址
指针可以理解为一个变量,是一个专门用来存放地址的变量。
数组名其实是数组首元素的地址。
所以可以通过指针来进行访问数组
#include<stdio.h>
int main()
{
int arr[10] = {0};
int i = 0;
int *p_arr = arr;
for(i=0; i<sizeof(arr)/sizeof(arr[0]); ++i)
{
*(p_arr+i) = i;
}
for(i=0; i<sizeof(arr)/sizeof(arr[0]); ++i)
{
printf("%d\n", *(p_arr+i));
}
return 0;
}