0
点赞
收藏
分享

微信扫一扫

一维数组与二维数组

1.int arr[必须为常量,不可以为变量]

数组的初始化

int arr1[10] = { 1,2,3 };//属于不完全初始化,剩下的元素默认初始化为01 2 3 0 0 0 0 0 0 0  

char arr2[5] = { 'a',98 };/{'a','b'}//两种表示结果相同,属于不完全初始化a b 0 0 0

char arr3[5] = "ab";//a  b  \0  0  0

char arr4[] = "abcdef";//由所给决定a  b  c d e f \0


2.#include<stdio.h>

#include<string.h>

//int main()

//{

// char arr[] = "abcdef";

// printf("%d\n", sizeof(arr));//7

// //sizeof计算arr所占空间大小

// //7个元素-char 7*1=7

//

// printf("%d\n", strlen(arr));//6

// //strlen求字符串的长度-'\0'之前的字符个数

// return 0;

//}

3.区别strlen与sizeof

//1.strlen与sizeof没有什么关联

//2.strlen是求字符串长度的,只能针对字符串求长度-库函数-使用得引头文件

//3.sizeof计算变量,数组,类型的大小-单位是字节-操作符



4.int main()

//{

// char arr1[] = "abc";//有\0作为结束标志

// char arr2[] = { 'a','b','c' };//没有\0作为结束标志

// printf("%d\n", sizeof(arr1));//4

// printf("%d\n", sizeof(arr2));//3

// printf("%d\n", strlen(arr1));//3

// printf("%d\n", strlen(arr2));//随机值strlen无法找到\0

// return 0;


5.一维数组的使用

//int main()

//{

// char arr[] = "abcdef";

// int i = 0;

// int len = strlen(arr);

// for (i = 0; i <len; i++)

// {

//  printf("%c ", arr[i]);//数组是使用下标来访问的,下标从0开始

// }

// return 0;

//}


//数组大小可通过计算得到

//即int sz=sizeof(arr)/sizeof(arr[0]);//数组大小除以元素大小


6.一维数组在程序中的存储


//int main()

//{

// int arr[] = { 1,2,3,4,5,6,7,8.9,10 };

// int sz = sizeof(arr) / sizeof(arr[0]);

// int i = 0;

// for (i = 0; i < sz; i++)

// {

//  printf("&arr[%d]=%p\n", i, &arr[i]);

// }

// return 0;

//}


//综上所述:一维数组在内存中是连续存放的,每个占据4个字节

        //同时随着数组下标的增长,元素的地址也有内在的规律,由低地址到高地址存储


//二维数组的创建与初始化

int main()

{

  // int arr[3][4] = {{1,2,3},{4, 5}};//三行四列

  // char ch [5][6];   //同时可通过加小括号进行分组,分行!!!  

   //int arr[] = { 1,2,3,4 };

   int arr[3][4] = { {1,2,3},{4,5,6,7},8 };//二维数组初始化时,行可以省去,列不可省去

                                          //同时二维数组中行列均从0开始

   int i = 0;

   for (i = 0; i < 3; i++)

   {

       int j = 0;

       for (j = 0; j < 4; j++)

       {

          // printf("%d ", arr[i][j]);//打印数组内的数

           printf("&arr[%d][%d]=%p\n", i, j, &arr[i][j]);//打印二维数组的地址

       }                                                 //二维数组存储时也为连续存储

       printf("\n");                               //  可以把二维数组当成多个一维数组,按行为标准

   }                                              //与一维数组类似!!!

   return 0;

}

举报

相关推荐

0 条评论