数组(1)—(一维数组)
1.数组的创建(数组是一类相同元素的集合)
注意:数组创建时[]中药给一个常量才可以,不能使用变量。
2.数组的初始化
数组的初始化是指,在创建数组的同时要给数组的内容一些合理初始值(初始化)。数组在创建的时候如果不指定数组的确定的大小就得初始化。数组中元素个数根据初始化的内容来确定,但是对于下面的代码药区分,内存中如何分配。
char arr[] = "abc";//带'/0'
char arr[3] = "abc";//不带'/0'
用“ ”引起来的字符串不用数组保存时一般都被编进字符常量区。该字符串不可被修改。
3.一维数组的使用
#include<stdio.h>
#include<windows.h>
int main()
{
int arr[] = { 0, 1, 2, 3, 4, 5, };
int sz = sizeof(arr) / sizeof(arr[0]);//计算数组的元素个数
printf("%d\n", sz);
system("pause");
return 0;
}
为什么是0下标?
因为数组至少有一个有效元素,所以下标0永远存在。
4.一维数组在内存中的存储(线性连续且递增)
#include<stdio.h>
#include<windows.h>
int main()
{
//1.在哪个区域开辟空间
//2.在该区域内,整体空间布局是怎么样的
char arr[5] = { 0 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
for (; i < sz; i++) {
printf("&arr[%d]=%p\n", i, &arr[i]);
}
system("pause");
return 0;
}
数组在栈上整体开辟空