#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#define SIZE 10//宏定义常量
int main01()
{
//int arr [10] ={1,2,3,4,5,6,7,8,,9,10};
//int arr [10] ={1,2,3,4,5};//其余为空值,用0补齐
//int arr [10]= {0}//都是0
//int arr [10] ;//开辟了10个数组内存空间,乱码
int arr [] ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//可加值 ,程序不需要修改
for(int i = 0; i<sizeof (arr) /sizeof (arr [0]); i++)
{
printf("%d ", arr [i]);
}
return 0;
}
int main02()
{
//数组元素必须是常量或常量表达式;数组必须预先知道大小; 动态改变:动态数组 开辟堆空间
//int i=10;//err
//int arr [i];//err
int arr [SIZE];//上面需要宏定义SIZE常量
for(int i = 0; i < SIZE; i++)
{
scanf("%d",& arr [i]);//通过for循环10次,输入10个值,放在对应的内存中
}
for(int i = 0; i < SIZE; i++)
{
printf("%d ",arr [i]);//通过for循环10次,依次打印10个值
}
return 0;
//结果
}
int main03()
{
int arr [10]={1,2,3,4,5,6,,7,8,9,10};
//printf("%d
", arr[-1]);下标越界
//printf("%d
", arr[10]);下标越界
for(int i=0; i<20;i++)
{
printf("%d ",arr [i]);
}
return 0;
//数组有10个元素,下标0—9;for(int i=0; i<20;i++)里是0—19。导致数组下标越界,运行时异常(可能会报错,因为并不是所有的内存都允许用户读取)
//结果
}