程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 指針與數組作為參數傳遞給函數時各自的寫法,數組寫法

指針與數組作為參數傳遞給函數時各自的寫法,數組寫法

編輯:關於C語言

指針與數組作為參數傳遞給函數時各自的寫法,數組寫法


編寫一個程序,初始化一個double數組,然後把數組內容復制到另外兩個數組(3個數組都需要在主程序中聲明)。制作第一份拷貝的函數使用數組符號。制作第二份拷貝的函數使用指針符號,並使用指針的增量操作。把目標數組名和要復制的元素數目做為參數傳遞給函數。也就是說,如果給定了下列聲明,函數調用應該如下面所示:

    double  source [5]={1.1,  2.2,  3.3,  4.4,  5.5};

    double  targetl[5];

    double  target2 [5];

    copy_arr (source, target1, 5);

    copy_ptr (source, target1,5);

 

 1 #include <stdio.h>
 2 
 3 void copy_arr(double s[],double tar[],int c);
 4 void copy_ptr(double *s,double *tar,int c);
 5 
 6 int main(void){
 7     double s[5]={1.1, 2.2, 3.3, 4.4, 5.5};
 8     double t1[5],t2[5];
 9     copy_arr(s,t1,5);
10     copy_ptr(s,t2,5);
11     int i;
12     printf("t1\t\tt2\n");
13     for(i=0;i<5;i++)
14     {
15         printf("t1[%d]=%.1f\t",i,t1[i]);
16         printf("t2[%d]=%.1f\n",i,t2[i]);
17     }
18     return 0;
19 }
20 
21 void copy_arr(double s[],double tar[],int c){
22     int i;
23     for(i=0;i<c;i++){
24         tar[i]=s[i];
25     }
26 }
27 
28 void copy_ptr(double *s,double *tar,int c){
29     int i;
30     for(i=0;i<c;i++){
31         *(tar+i)=*(s+i);
32     }
33 }

 在函數定義部分也可以使用增量運算符:

1 void copy_arr(double s[],double tar[],int c){
2     int i=0;
3     while(i<c)tar[i]=s[i++];
4 }
5 
6 void copy_ptr(double *s,double *tar,int c){
7     int i=0;
8     while(i<c)*(tar+i)=*(s+i++);
9 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved