Курсовая работа: Особливості мови програмування С

Переваги мови C++:

1. Продуктивність. Швидкість роботи програм на С++ практично не поступається програмам на С, хоча програмісти отримали в свої руки нові можливості і нові засоби.

2. Масштабованість. На мові C++ розробляють програми для самих різних платформ і систем.

3. Можливість роботи на низькому рівні з пам'яттю, адресами, портами.

4. Можливість створення узагальнених алгоритмів для різних типів даних, їх спеціалізація, і обчислення на етапі компіляції, з використанням шаблонів.

Реалізації С++ тепер є на всіх машинах, починаючи з найскромніших мікроком’ютерів – до найбільших супер-ЕОМ, і практично для всіх операційних систем.

Існують три причини, без яких неможливо написати гарну програму мовою С++ без використання показників.

По-перше, показники дозволяють функціям змінювати свої аргументи.

По-друге, за допомогою показників здійснюється динамічний розподіл пам'яті.

По-третє, показники підвищують ефективність багатьох процедур [2].

Показники - одне із самих потужних й, у той же час, самих небезпечних засобів мови С++. Наприклад, показники, що містять невірні адреси можуть знищити операційну систему комп'ютера. І, що ще гірше, неправильне використання показників породжує помилки, які вкрай важко виявити.

Показник (poіnter) - це змінна, у якій зберігається адреса іншого объета (як правило, іншої змінної).

Наприклад, якщо один змінна містить адреса інший змінної, говорять, що перша змінна посилається на другу

Показник ідентифікує змінну, говорячи не про її ім'я, а про те, де вона перебуває в пам'яті.

Оголошення показника складається з імені базового типу, символу * й імені змінної [3].

2.1.1.2 Вказівники в С++

Програми на C++ зберігають змінні в пам'яті. Вказівником є адреса пам'яті, яка вказує (або посилається) на певну ділянку. Для зміни параметра усередині функції програма повинна передати адресу параметра (вказівник) у функцію. Далі функція у свою чергу використовує змінну-вказівник для звернення до ділянки пам'яті. Деякі програми використовують вказівники на параметри. Аналогічно цьому, коли програми працюють з символьними рядками і масивами, вони зазвичай використовують вказівники, щоб оперувати елементами масиву. Для простоти (для зменшення коду) багато програм трактують символьний рядок як вказівник і маніпулюють вмістом рядка, використовуючи операції з вказівниками.

Коли збільшують змінну-вказівник (змінну, яка зберігає адресу), C++ автоматично збільшує адресу на необхідну величину (на 1 байт для char, на 2 байти для int, на 4 байти для float і так далі).

Програми можуть використовувати вказівники для роботи з масивами цілочисельних значень або значень з плаваючою крапкою.

2.1.1.3 Оператор розіменування

Для доступу до об'єкту через вказівник використовується оператор розіменування *, що здійснює так звану непряму адресацію: *p означає «об'єкт, на який вказує p». По суті *p є ссилкою на об'єкт.

Спроба розіменування нульового вказівника приводить до помилки при виконанні програми, спроба ж розіменування вказівника void*(див. розділ 2.4) викличе помилку на етапі компіляції.

Однією з поширених помилок є розіменування неініціалізованих вказівників. Наприклад, в будь-якому з наступних випадків результат роботи програми непередбачуваний:

char* s;

*s=’a’; // помилка!

cin>>s; // помилка!

Відзначимо, що в останньому випадку, де виводиться рядок, на який вказує s, розіменування присутнє неявно і відбувається усередині оператора введення з потоку [3].

К-во Просмотров: 723
Бесплатно скачать Курсовая работа: Особливості мови програмування С