0
在Deitel公司公司的C如何作者使用冒泡排序例如編程,以表明信息隱藏不允許單個陣列元素被已知的功能的第7章,指針可以用來圍繞傳遞的地址和所使用的相同的方式。信息隱藏如何防止函數訪問單個數組元素?
下面是使用交換函數指針:
void swap(int *element1Ptr, int *element2Ptr) {
int hold = *element1Ptr;
*element1Ptr = *element2Ptr;
*element2Ptr = hold;
}
這裏是我做過什麼:
void swap(int array[],int j) {
int hold = array[j];
array[j] = array[j + 1];
array[j + 1] = hold;
}
主要():
int main(void) {
int b[] = {2,6,4,8,10,12,89,68,45,37};
for (int i = 0; i < 9; i++) {
for (int n = 0; n < 9; n++) {
if (b[n] > b[n + 1]) {
swap(&b[n], &b[n+1]); // or swap(b,n);
}
}
}
for (int i = 0; i < 9; i++) {
printf("%d ", b[i]);
}
puts("");
return 0;
}
我跑的代碼和兩正確排序陣列。所以我認爲我的功能實際上獲得了對個人元素的訪問。我認識哪部分是錯誤的?在繼續前進之前,我需要確保自己明白每一點,因爲跳過真正會讓即將到來的內容難以掌握。
爲什麼你有一個C++標籤?你注意到了嗎?你知道C++不是用類c嗎? –
此外,該書如何定義*信息隱藏*?它是什麼? –
* swap *的第一個版本是首選,因爲它不假定參數來自數組。這使它更普遍適用。 –