Оператор адреси & в C
The Оператор адреси на C це спеціальний унарний оператор, який повертає адресу змінної. Він позначається як Символ амперсанда ( & ) . Цей оператор повертає ціле значення, яке є адреса його операнда в пам'яті. Ми можемо використовувати оператор адреси (&) з будь-якими типами змінних, масивів, рядків, функцій і навіть покажчиків.
Синтаксис
Оператор адреси зазвичай використовується як префікс до свого операнда:
& operand
де операнд може бути змінною, масивом, функцією, покажчиком тощо.
Оператор адреси на C
Приклади операторів адреси
приклад 1:
Простий приклад C, щоб продемонструвати, як використовувати оператор адреси в нашій програмі.
C
// C program to illustrate the use of address operator> #include> > int> main()> {> > // declaring a variable> > int> x = 100;> > > // printing the address of the variable> > printf> (> 'The address of x is %p'> , &x);> > return> 0;> }> |
Вихід
The address of x is 0x7fffe8f5591c
Пояснення
Змінна x було визначено та ініціалізовано значенням 100 у програмі вище. Ми отримали адресу цієї змінної x, використовуючи оператор адреси (&) як префікс, і надрукували її за допомогою функції printf().
Примітка: Специфікатор формату %p для друку адреси в шістнадцятковій формі.
Як правило, значення, яке повертає оператор адреси, зберігається в покажчик змінна, а потім вказівник розіменовується, щоб отримати значення, що зберігається в цій адресі.
приклад 2:
Використання вказівника для збереження адреси, повернутої оператором адреси, і подальше її розіменування.
C
// C program to illustrate the use of address operator with> // pointer> #include> > int> main()> {> > // integer variable> > int> x = 1;> > // integer pointer> > int> * ptrX;> > // pointer initialization with the address of x> > ptrX = &x;> > > // accessing value of x usin pointer> > printf> (> 'Value of x: %d
'> , *ptrX);> > > return> 0;> }> |
Вихід
Value of x: 1
приклад 3:
Деякі стандартні функції, такі як scanf(), також вимагають адресу змінної. У цих випадках ми використовуємо оператор адреси.
C
// C Program to illustrate the use of address operator with> // scanf()> #include> > int> main()> {> > // defining variable> > int> number;> > > printf> (> 'Enter any number: '> );> > // using adress operator & in scanf() to get the value> > // entered by the user in the console> > scanf> (> '%d'> , &number);> > > // priting the entered number> > printf> (> 'The entered number is: %d'> , number);> > return> 0;> }> |
Вихід
Enter any number: 10 The entered number is: 10
Оператор адреси несумісні сутності в C
Є деякі сутності в C, для яких ми не можемо використовувати оператор адреси, тобто ми не можемо отримати адресу цих сутностей у C. Деякі з них:
- Зареєструвати змінні
- Бітові поля
- Літерали
- Вирази
Застосування оператора адреси (&):
Оператор адреси (&) широко використовується в програмах на C для отримання адрес різних об’єктів. Деякі з основних і найпоширеніших програм:
- Передача покажчиків як аргументів функції
- Арифметика вказівника
- Реалізація структур даних