回覆列表
  • 1 # dtalu15217

    方法一、陣列的下標法如:int a[5],i;printf("Input five numbers:");for(i=0;i

  • 2 # 奉孝歷史

    方法一、陣列的下標法如:int a[5],i;printf("Input five numbers:");for(i=0;i<5;i++){scanf("%d",&a[i]);}for(i=0;i<5;i++){printf("%4d",a[i]);}方法二、陣列名首地址法(指標法):指標增1運算的執行效率很高,利用指標的增1運算實現指標的移動,省去了每尋找一個數組元素都要進行的指標算術運算,執行效率最高。說明:陣列名有特殊含義,它代表存放陣列元素的連續儲存空間的首地址,即指向陣列中第一個元素的常量指標,如"a+i"代表陣列中下標為i的元素a[i]的地址(&a[i]),而"*(a+i)"表示取出首地址元素後第i個元素的內容,即下標為i的元素"a[i]"。int a[5],i;printf("Input five numbers:");for(i=0;i<5;i++){scanf("%d",a+i);}for(i=0;i<5;i++){printf("%4d",*(a+i));}方法三、移動指標變數法:說明:指向同一陣列中不同元素的指標的關係運算用於比較他們所指元素在陣列中的前後位置關係。指標的算術運算(如增1和減1)用於移動指標的指向,使其指向陣列中的其它元素。注意:p++和p+1是本質不同的兩個操作。同:都對指標變數p進行加1運算。異:p+1不改變當前指標的指向,p仍指向原來指向的元素,p++講指標變數p向前移動一個元素的位置,指向下一元素,p++是加上1*sizeof(基型別)個位元組。int a[5],*p;printf("Input five numbers:");for(p=a;p<a+5;p++)注意:p是指標變數,可以透過賦值操作改變他的值,使p指向陣列中其他元素,而陣列名a是一個常量指標,代表一個地址常量,其值是不能被改變的。{ scanf("%d",p);}for(p=a;p<a+5;p++){printf("%4d",*p);}方法四、指標下標法:int a[5], *p=NULL, i;printf("Input five numbers:");p=a;// p=a等價於p=&a[0] //for(i=0;i<5;i++){scanf("%d", &p[i] );// &p[i]等價於p+1 //}p=a;// 在再次迴圈開始前,確保指標p指向陣列首地址 //for(i=0;i<5;i++){printf("%4d", p[i] );// p[i]等價於*(p+i) //}

  • 中秋節和大豐收的關聯?
  • 介紹下夢幻西遊25劇情詳細過程?