zoukankan      html  css  js  c++  java
  • 《挑战30天C++入门极限》在c/c++中利用数组名作为函数参数传递排序和用指针进行排序的例子。

     
     

      在c/c++中利用数组名作为函数参数传递排序和用指针进行排序的例子。

      以下两个例子要非常注意,函数传递的不是数组中数组元素的真实值而是数组在内存中的实际地址。

    #include <stdio.h> 
     
    void main(void

     
    void reversal(); 
    static int a[10] = {0,1,2,3,4,5,6,7,8,9}; /* 建立一个数组并初始化 */
    int i; 
    for (i=0;i<10;i++) 

    printf("%d ",a); 

    printf(" "); 
    reversal(a,10); /* 调用自定义涵数进行反向显示排序,并把数组a的起始地址传送给形式参数x */
     
    for (i=0;i<10;i++) 

    printf("%d ",a); 

    printf(" "); 
     

     
    void reversal(x,n) 
    int x[],n; /* 定义形式参数 */

    int m=(n-1)/2; /* 计算10个数需要循环几次,因为是两两调换第一个数组是x[0]故应该是int(9/2) */
    int temp,i,j; /* 建立零时变量temp用于每次交换处理时零时存储x的值 */
    for (i=0;i<=m;i++) 

    j=n-1-i; /* 反向计算出被调换的数组下标,例如x[0] 对应的x[n-1-i]就是x[9] */
    temp=x; 
    x=x[j]; 
    x[j]=temp; 


     
    /* 次题需要注意的是:这里由于a[10]和x[10]是共同享内存地址位的所以进行交换后a[10]的实际值也就发生了改变 */



    #include <stdio.h> 
     
    void main(void

     
    void reversal(); 
    static int a[10] = {0,1,2,3,4,5,6,7,8,9}; /* 建立一个数组并初始化 */
    int i; 
    for (i=0;i<10;i++) 

    printf("%d ",a); 

    printf(" "); 
    reversal(a,10); /* 调用自定义涵数进行反向显示排序,并把数组a的起始地址传送给形式参数x */
     
    for (i=0;i<10;i++) 

    printf("%d ",a); 

    printf(" "); 
     

     
    void reversal(x,n) 
    int *x,n; /* 定义x为指针变量 */

    int temp,*p,*i,*j; /* 这里需要注意的是temp用与交换的时候临时存储数据的 */
    = x; /* 利用指针变量i存储数组a的起始地址 */
    = x + ((n-1)/2); /* 计算最后一次循环的时候数组a的地址 */
    = x + n - 1; /* 计算数组a也就是a[9]的结束地址好用于交换 */
    for (;i<=p;i++,j--) /* 利用循环和指针进行数组元素值的交换 */

    temp=*i; /* 用temp临时存储*i也就是循环中a实际的值 */
    *i=*j; 
    *j=temp; 


     
    /* 此例同样要注意到利用指针进行数组的操作同样改变了实际数组各元素的值 */

     
     
  • 相关阅读:
    java实现 洛谷 P1425 小鱼的游泳时间
    java实现 洛谷 P1425 小鱼的游泳时间
    java实现 洛谷 P1425 小鱼的游泳时间
    java实现 洛谷 P1425 小鱼的游泳时间
    Java实现洛谷 P1428 小鱼比可爱
    Java实现洛谷 P1428 小鱼比可爱
    Java实现洛谷 P1428 小鱼比可爱
    阿里面试题总结
    BAT机器学习面试1000题系列
    就目前市面上的面试整理来说,最全的BAT大厂面试题整理在这
  • 原文地址:https://www.cnblogs.com/landv/p/11184622.html
Copyright © 2011-2022 走看看