Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Sujith V S
Sujith V S

Posted on

     

Pointers in C programming.

Pointer in c allow us to work directly with the computer memory.

Memory Addresses

In c programming whenever we declare a variable a space will be allocated in the memory for the variable and C allows us to access the address of the variable. We use& with variable name to access the memory address.
Example:

int main() {    int age = 25;    printf("%p", &age);    return 0;}
Enter fullscreen modeExit fullscreen mode

Output:

0x7ffcad58272c
Enter fullscreen modeExit fullscreen mode

The format specifier%p(pointers) and& is used to get the memory address where 25 is located.

scanf("%d", &age);- with scanf we are instructing the compiler to store the input value at the memory address specified by this &age.

Pointer Variable

The pointer variable stores the memory addresses of the available value.
Example:int* ptr;

Assigning value(memory address) to a pointer variable

int main() {    int age = 25;    printf("%p", &age);    int* ptr = &age; //assigned value.    printf("\n%p", ptr);    return 0;}
Enter fullscreen modeExit fullscreen mode

Access value using pointer
Here we are trying to access the value of a variable using pointer variable.

int main() {    int age = 25;    int* ptr = &age;     printf("Address: %p\n", ptr);    printf("Value: %d", *ptr);     return 0;}
Enter fullscreen modeExit fullscreen mode

printf("Value: %d", *ptr);- it gives the value stored in a memory address.

Change value using pointer

int main() {    int age = 25;    int* ptr = &age;     *ptr = 31;     printf("%d", age);    return 0;}
Enter fullscreen modeExit fullscreen mode

In the above code, the initially assigned value is 25.
*ptr = 31; - it assigns a new value pointed by the ptr variable.
printf("%d", age); - now the value is changes to 31. because it points directly to the address and change the value to 31.


int* ptr = 32; (Invalid)
ptr is a pointer and it can only store memory address. And if we try to assign a value or number to it then it will become invalid.

*ptr = &number; (invalid)
*ptr stores the value and if we try to assign a memory address then it becomes invalid.

ptr = &number; (valid) - assigning address.

*ptr = number; (valid) - assigning value.

Top comments(0)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

React | Django | ..
  • Joined

More fromSujith V S

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp