Pointer to Pointer
Sometimes you do not just want to change a value, you want to change it through another pointer. That is where a pointer to pointer comes in. Think of it like this:
int xholds a number;int *pholds the address ofx;int **ppholds the address ofp.
So the chain looks like:
pp → p → x → value
To reach the real value, you must dereference twice.
main.c
12345678910111213141516#include <stdio.h> void set_to_ten(int **pp) { **pp = 10; } int main() { int x = 5; int *p = &x; int **pp = &p; set_to_ten(pp); printf("%d\n", x); // prints 10 return 0; }
So basically you are setting the original variable x to 10 through two pointer levels. This is exactly what you need for the multi-level pointer task.
Pointer-to-pointer logic is most useful when a function must modify data that is already accessed through a pointer. If you forget one * when dereferencing, the program will compile but update the wrong level, so always double-check how many pointer layers you are working with.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Чудово!
Completion показник покращився до 9.09
Pointer to Pointer
Свайпніть щоб показати меню
Sometimes you do not just want to change a value, you want to change it through another pointer. That is where a pointer to pointer comes in. Think of it like this:
int xholds a number;int *pholds the address ofx;int **ppholds the address ofp.
So the chain looks like:
pp → p → x → value
To reach the real value, you must dereference twice.
main.c
12345678910111213141516#include <stdio.h> void set_to_ten(int **pp) { **pp = 10; } int main() { int x = 5; int *p = &x; int **pp = &p; set_to_ten(pp); printf("%d\n", x); // prints 10 return 0; }
So basically you are setting the original variable x to 10 through two pointer levels. This is exactly what you need for the multi-level pointer task.
Pointer-to-pointer logic is most useful when a function must modify data that is already accessed through a pointer. If you forget one * when dereferencing, the program will compile but update the wrong level, so always double-check how many pointer layers you are working with.
Дякуємо за ваш відгук!