黑马程序员-c语言数组的一些知识温故

来源:互联网 发布:音乐下载 知乎 编辑:程序博客网 时间:2024/05/16 12:05
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

做测试题发现把以前的又忘了,今天复习有感觉好像学到了新的东西,有对数组有了重新的认识,还是感觉自己学的太慢了,第一批肯定是赶不上了,现在oc还没看呢,我还是觉得把基础学好,在学深一点的就好学一些把,希望能赶上第二批委屈下面是今天的小练习,注释里面写了一些小的知识点


#include <stdio.h>


//数组作为函数的参数,可以省略元素的个数

//数组作为函数的参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组


void change (int array[])//数组作为函数的参数时,传递的是整个数组的地址

{

    //printf("array==%p\n",array);

    

    array[0]=100;

}


void changes(int  n )

{

    n =100;

}


int main()

{

   int ages[6]={10,11,21,23,12,12};

    //printf("ages==%p\n",ages);

    

    /*changes(ages[0]);

    printf ("%d\n",ages[0]);

     打印结果:10;因为基本数据类型作为函数参数是只是值传递,也就是把数组中的第一个元素10传到n,但并没有改变ages[0]的值

     */

    

    change(ages);

    printf("%d\n",ages[0]);

   //

    /*打印结果为100,因为调用change函数时是把整个数组ages传到change函数里,因为数组名代表数组的整个地址,也就是说把ages数组的整个地址传到change函数中,通过change函数把数组中第一个元素中的值改为100,即就是把数组ages中的第一个元素改为100,并打印输出

     */

    

   return 0;

    

}


/*

 设计一个函数.找出整形数组元素的最大值

 */


#include <stdio.h>


int maxOfArray(int array[],int length)

{

    /*int size =sizeof(array);

    printf ("array==%d\n",size);

     输出结果为array=8;

     数组当做函数参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下,占据8个字节

     */

    //定义一个变量存储最大值,(默认就是首元素)

   int max=array[0];

   for (int i=0; i<length; i++) {

        /*printf("array[%d]==%d\n",i,array[i ]);//遍历整个数组*/

        //如果当前元素大于max,就用当前元素覆盖max

       if (array[i]>max ) {

            max =array[i ];

            

        }

    }

    

    

   return max;

}


int main()

{

   int ages[]={21,132,432,43,23,123,11};

   int max =maxOfArray(ages ,sizeof(ages)/sizeof(int ));

    printf("数组元素中的最大值%d\n",max);

    /*maxOfArray(ages);

    int size =sizeof(ages);

    printf ("ages==%d\n",size);

     //输出结果为ages==28,数组的每一个元素占据4个字节

     */

    

   return  0;

}

这是两个程序分别运行的结果:



0 0
原创粉丝点击