c语言中 指针和一维数组 简要总结

          今天把指针和一维数组的知识,做一个简要的总结。

 <pre name="code" class="cpp">	int liv_arr[] = {11, 22, 33, 44, 55};
	int * lpv_sum = liv_arr;
	printf("liv_arr[2]=%d   *(lpv_sum+2)=%d   *(liv_arr+2)=%d\n", liv_arr[2], *(lpv_sum+2), *(liv_arr+2));
	printf("liv_arr[2]=%x   *(lpv_sum+2)=%x   *(liv_arr+2)=%x\n", &liv_arr[2], lpv_sum+2, liv_arr+2);


输出的结果为

<span style="white-space:pre">	</span>liv_arr[2]=33   *(lpv_sum+2)=33   *(liv_arr+2)=33
<span style="white-space:pre">	</span>&liv_arr[2]=2dfa90   *(lpv_sum+2)=2dfa90   *(liv_arr+2)=2dfa90
那么说明他们的结果都是一样的,所以我们在操作的一维数组的时候,就有了三种方式进行操作。

比如我们现在想使用一个函数,将一维数组中的内容全部遍历输出,我们可以使用如下方式

方式一:使用数组方式:

<span style="white-space:pre">	</span><pre name="code" class="cpp"><pre name="code" class="cpp"><span style="white-space:pre">	</span>//使用数组方式进行打印一维数组中的元素
<pre name="code" class="cpp">       /*
           int * pArr    为一维指针数组
<span style="font-family: Arial, Helvetica, sans-serif;">               */</span>
void printArr(int arr[5]) { for (int i=0; i<5; i++) { printf("arr[%d] = %d \n", i, arr[i]); } }


        
<span style="white-space:pre">	</span>//调用
<span style="white-space:pre">	int liv_arr[] = {11, 22, 33, 44, 55};
<span style="white-space:pre">	</span>printArr(liv_arr);</span>

        输出结果:

<span style="white-space:pre">	</span>arr[0] = 11
<span style="white-space:pre">	</span>arr[1] = 22
<span style="white-space:pre">	</span>arr[2] = 33
<span style="white-space:pre">	</span>arr[3] = 44
<span style="white-space:pre">	</span>arr[4] = 55
但是使用这种方式会发现代码的复用性比较差,因为参数必须是5个元素的int类型的数组
  
         方式二:使用指针方式

<span style="white-space:pre">	</span>//使用指针方式进行打印一维数组中的元素<span style="white-space:pre">	</span>
      /*
         int * pArr    为一维指针数组
         int count     为一维指针数组元素个数
       */
       void printArr(int * pArr, int count)
<span style="white-space:pre">	</span>{
	    for(int i=0; i<count; i++)
	    {
		printf("*(pArr+%d) = %d \n", i, *(pArr+i));
	    }
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>
        //调用
        int liv_arr[] = {11, 22, 33, 44, 55};
<span style="white-space:pre">	</span>printArr(liv_arr, 5);
       输出结果:

<span style="white-space:pre">	</span>*(pArr+0) = 11
<span style="white-space:pre">	</span>*(pArr+1) = 22
<span style="white-space:pre">	</span>*(pArr+2) = 33
<span style="white-space:pre">	</span>*(pArr+3) = 44
<span style="white-space:pre">	</span>*(pArr+4) = 55
我们使用该种方式的时候,会发现复用性比较好,也建议使用此种方式。





       

你可能感兴趣的:(C语言,一维数组,指针)