数组小总结

版权声明: https://blog.csdn.net/spaceman_c/article/details/79826636
一、一维数组


           1、一维数组的创建和初始化

                         类型数名符 数组名[常量表达式]

                          int arr1[10];注:[]中要给一个常量才可以,不能使用变量。

                          int arr2[10]={1,2,3,4,5,6};其他元素自动附0值

                           int arr3[]={1,2,3,4,5};可以不指定数组长度

                           char arr4[]={'a','b','c'};

                            char arr5[]="abcdef";

                   2、一维数组的使用

                           数组是使用下标来访问的,下标从0开始。

                           数组的大小计算:int sz=sizeof(arr)/sizeof(arr[0]);

                  3、数组在内存中是连续存放的

                  4、一维数组的指针访问

                               1)&数组名表示整个数组 ,sizeof(数组名)表示整个数组

                                     其余都是首元素的地址

                                    arr+i表示下标为i的地址,*arr+i表示下标为i的元素,*(arr+0)表示微首元素

                                    *arr[]、*(arr+0)、arr[0]表示首元素

 二 、二维数组

                  1、二维数组的创建和初始化
                                 类型说明符 数组名[常量表达式1][常量表达式2]

                                             float arr[3][3];

                                 二维数组第一维可以省略,二维不可以省略

                                              int a[ ][3]={1,2,3,7,8,9};

                 2、二维数组在内存中也是连续访问的

                 3、二维数组可以看成一个特殊的一维数组    
                      a[i][j]可以表示为*(a[i]+j)

    三 、     数组作为函数参数的时候,不会把整个数组传递过去,只是把数组的首元素传递过去  

                strlen() 求的是字符串的实际长度(从开始到遇到第一个\0结束)

                sizeof()返回的是变量名所占的内存

                sizeof是一个操作符

               strlen是函数

              char *p = "abcdef";
       printf("%d\n", strlen(p));//6
       printf("%d\n", strlen(p+1));//5
      printf("%d\n", strlen(*p));//err

              printf("%d\n", strlen(p[0]));//err

              printf("%d\n", strlen(&p));//随机

              printf("%d\n", strlen(&p+1));//随机值

             printf("%d\n", strlen(&p[0]+1));//5
             printf("%d\n", sizeof(p));//4
             printf("%d\n", sizeof(p+1));//4
             printf("%d\n", sizeof(p[0]));//1

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

             printf("%d\n", sizeof(&p+1));//4

            printf("%d\n", sizeof(&p[0]+1));//4


猜你喜欢

转载自blog.csdn.net/spaceman_c/article/details/79826636