1.程式欲輸出陣列每一個元素的值,及其在記憶體的位址。
2.題目已提供程式碼片段,執行結果如參考畫面,程式碼有語法、邏輯或其他項目上的錯誤,請全數修正。
本題因輸出陣列位址,因每台機器位址不同,所以無法以固定答案驗證,因此本題稍為修改程式碼,但仍以原題考意為主。
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int arr[5]={100, 200, 300, 400, 500};
int i;
printf("\n表達陣列元素的值方式一:\n");
for (i=1; i<5; i++)
{
printf("arr[%d]=%d\n", i, arr[i]);
}
printf("\n表達陣列元素的值方式二:\n");
for (i=1; i<5; i++)
{
printf("arr[%d]=%d\n", i, *arr+i);
}
printf("\n表達陣列元素的值方式三:\n");
int *p=arr;
for (i=0; i<5; i++,p++)
{
printf("arr[%d]=%p\n", i,p);
}
printf("\n陣列元素的位址比較:\n");
for (i=1; i<5; i++)
{
printf("&arr[%d]==arr+%d is %s\n", i, i,(arr[i]==arr+i?"yes":"no"));
}
return 0;
}
表達陣列元素的值方式一: arr[0]=100 arr[1]=200 arr[2]=300 arr[3]=400 arr[4]=500 表達陣列元素的值方式二: arr[0]=100 arr[1]=200 arr[2]=300 arr[3]=400 arr[4]=500 表達陣列元素的值方式三: arr[0]=100 arr[1]=200 arr[2]=300 arr[3]=400 arr[4]=500 陣列元素的位址比較: &arr[0]==arr+0 is yes &arr[1]==arr+1 is yes &arr[2]==arr+2 is yes &arr[3]==arr+3 is yes &arr[4]==arr+4 is yes
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |