В главе 7 книги Deitel's о том, как запрограммировать автор, используется пример сортировки пузырьков, чтобы показать, что скрытие информации не позволяет отдельным элементам массива быть известными функции, указатели могут использоваться для передачи адреса и использования одинакового пути ,Как скрывать информацию, препятствуя доступу функции к отдельному элементу массива?
Вот функция подкачки с помощью указателя:
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 * является предпочтительной, поскольку она не предполагает, что параметры поступают из массива. Это делает его более общеприменимым. –