所以我是一個初學C編程和理解指針,如何使用它們仍然給我一些麻煩。在這裏,我只是試圖通過使用指針來遍歷數組。我已經得到了下面這段代碼,但不是以55結尾,而是打印一個附加值(32765)。首先,有人可以向我解釋爲什麼我會得到額外的價值嗎?其次,有人能告訴我如何將這個程序限制在數組中的值嗎?我嘗試使用* pntr < 5作爲條件,但是沒有打印。通過指針的數組迭代
void iterate(int* li) {
for (int *pntr = li; *pntr; pntr++) {
printf("%d\n", *pntr);
}
}
int main(){
int values[] = {11, 22, 33, 44, 55};
iterate(values);
}
想一想'pntr'一旦'pntr'不再指向您的任何值 –
因爲您調用了未定義的行爲。 「int」數組不需要以null結尾,所以不需要滿足「for」循環終止條件。 –