Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- // Указатели
- // Зачем вообще нужны указатели?
- // В языке С аргументы в функции передаются ПО ЗНАЧЕНИЮ
- // это значит, что когда мы передаём аргумент при вызове функции
- // мы передаём копию
- // и никак не можем её изменить
- // Смотри Пример 1 в main()
- void tryToChangeValue(int value) {
- value = 5;
- }
- // Как видно, ничего не произошло, если мы меняем значение аргумента
- // это никак не влияет на него снаружи этой функции
- // но что, если мы хотим менять значение аргумента внутри функции так
- // чтобы после вызова функции аргумент имел изменённое значение?
- // УКАЗАТЕЛИ! Смотри Пример 2 в main()
- void actuallyChangeValue(int *value) {
- *value = 5;
- }
- // Указатель это переменная, которая хранит тип и адрес
- // зная адрес в памяти, можно поменять значение
- // по такому принципу работает, например функция scanf()
- // Смотри Пример 3
- int main() {
- // Пример 1
- int a = 10;
- printf("Значение а до вызова функции: %d\n", a);
- tryToChangeValue(a);
- printf("Значение а после вызова функции: %d\n", a);
- // Пример 2
- int b = 0;
- printf("Значение b до вызова функции: %d\n", b);
- actuallyChangeValue(&b);
- printf("Значение b после вызова функции: %d\n", b);
- // Пример 3
- int c;
- printf("Введите число: ");
- scanf("%d", &c);
- printf("Вы ввели число %d\n", c);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement