数组
本章重点
1.一维数组的创建和初始化
数组的创建
注意事项:
1.一维由低数组在内存中是连续存放的!
2.随着数组下标的增长,地址是由低到高变化的
2.二维数组的创建和初始化
注意事项:
1.二维数组在内存中也是连续存放的(一行内部是连续的,跨行也是连续的)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>//int main()
//{
// //int arr[8];
// //char ch[5];
// //int n = 8;
// //int arr[8];
//
// //int a = 10;//初始化
// //int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };//完全初始化
// //int arr[10] = { 1,2,3,4,5 };//不完全初始化
//
// //int arr2[] = { 1,2,3,4,5 };
// //int arr2[5] = { 1,2,3,4,5 };
//
// //char ch1[5] = { 'b','i','t' };
// //char ch2[] = { 'b','i','t' };
//
// //char ch3[5] = "bit";//b i t \0 0
// //char ch4[] = "bit";//b i t \0
//
// //char ch5[] = "bit";
// //[b i t \0]
// //char ch6[] = { 'b','i','t' };
// //[b i t]
//
// //printf("%d\n", strlen(ch5));
// //printf("%d\n", strlen(ch6));//随机值
//
//
// //printf("%s\n", ch5);
// //printf("%s\n", ch6);
//
// return 0;
//}//%p - 是按地址的格式打印 - 十六进制的打印
//int main()
//{
// //printf("%x\n", 0x12);
// //printf("%p\n", 18);
//
// int arr[10] = { 0 };
// int i = 0;
// for (i = 0; i < 10; i++)
// {
// printf("&arr[%d]=%p\n", i,&arr[i]);
//
// }
// return 0;
//}//int main()
//{
// int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//
// int* p = arr;//数组名是数组首元素的地址
// int i = 0;
// for (i = 0 ; i < 10; i++)
// {
// printf("%d ", *p);
// p++;
// }
//
//}int main()
{//创建//int arr[3][4];//char ch[3][10];//初始化-创建的同时给赋值//int arr[3][4] = { 1,2,3,4,5,6,7,8,9,10 };//int arr[3][4] = { 1,2,3,4,5,6,7 };//不完全初始化-后面补0//int arr[3][4] = { {1,2},{3,4},{4,5} };//int arr[][4] = { {1,2},{3,4},{4,5} };// 可以省略行,不能省略列//int i = 0;//int j = 0;//for (i = 0; i < 3; i++)//{// for (j = 0; j < 4; j++)// {// printf("%d ",arr[i][j]);// }// printf("\n");//}//int arr[][4] = { {1,2},{3,4},{4,5} };//int i = 0;//int j = 0;//int* p = &arr[0][0];//for (i = 0; i < 12;i++)//{// printf("%d ", *p);// p++;//}//for (i = 0; i < 3; i++)//{// for (j = 0; j < 4; j++)// {// printf("arr[%d][%d] = %p ",i,j, &arr[i][j]);// }// printf("\n");//}return 0;
}