以下Ç代碼的指針分配給數組:勘定INT *爲int []如預期中開發的C++不起作用
#include <stdio.h>
// ders 5 : Diziler vs. Isaretciler
int main(){
int array[20];
int i;
int* pointer = (int*)array;
// Fill the array with numbers from 0 to 20
for (i=1; i<=20; i++){
array[i] = i;
}
printf("5th element of the array: %d \n", array[4]);
printf("array: %d pointer: %d \n",array,pointer);
printf("The value pointed with (pointer+4) %d \n", *(pointer+4));
}
即「指針」必須是等於「陣列「按價值計算,但事實並非如此。所以它會給出錯誤並崩潰。我使用BloodShed Dev C++ IDE(但程序是C語言)。
決定一個languge C或C++? –
這段代碼完全用c寫成,源文件的擴展名也是c。是不是可以將int []分配給C中的int *? – fercis
我不知道「dev-C++」是什麼;它是一個可以處理C++代碼以及C代碼的編譯器嗎?你是否必須告訴編譯器它是C代碼,還是會自動識別它? – Evert