1 / 18

POINTER CONCEPT

POINTER CONCEPT. Through pointers a developer can directly access memory from his/her code which makes memory related operations very fast. But, as always, with great power comes great responsibility. What are Pointers?

rock
Download Presentation

POINTER CONCEPT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. POINTER CONCEPT

  2. Through pointers a developer can directly access memory from his/her code which makes memory related operations very fast. But, as always, with great power comes great responsibility.

  3. What are Pointers? Different from other normal variables which can store values, pointers are special variables that can hold the address of a variable. Since they store memory address of a variable, the pointers are very commonly said to “point to variables”.

  4. A normal variable ‘var’ has a memory address of 1001 and holds a value 50.A pointer variable has its own address 2047 but stores 1001, which is the address of the variable ‘var’

  5. How to Declare a Pointer? A pointer is declared as : <pointer type> *<pointer-name> • pointer-type : It specifies the type of pointer. It can be int,char, float etc. This type specifies the type of variable whose address this pointer can store. • pointer-name : It can be any name specified by the user. Professionally, there are some coding styles which every code follows. The pointer names commonly start with ‘p’ or end with ‘ptr’

  6. char *chptr; In the above declaration, ‘char’ signifies the pointer type, chptr is the name of the pointer while the asterisk ‘*’ signifies that ‘chptr’ is a pointer variable.

  7. How to initialize a Pointer? pointer declaration(except semicolon)> = <address of a variable> OR <pointer declaration> <name-of-pointer> = <address of a variable> Note that the type of variable above should be same as the pointer type

  8. Example : char ch = 'c'; char *chptr = &ch; //initialize OR char ch = 'c'; char *chptr; chptr = &ch //initialize

  9. In the code above, we declared a character variable ch which stores the value ‘c’. Now, we declared a character pointer ‘chptr’ and initialized it with the address of variable ‘ch’. • Note that the ‘&’ operator is used to access the address of any type of variable.

  10. How to Use a Pointer? A pointer can be used in two contexts. Context 1: For accessing the address of the variable whose memory address the pointer stores. char ch = 'c'; char *chptr = &ch; Now, whenever we refer the name ‘chptr’ in the code after the above two lines, then compiler would try to fetch the value contained by this pointer variable, which is the address of the variable (ch) to which the pointer points

  11. Context 2: For accessing the value of the variable whose memory address the pointer stores char ch = 'c'; char t; char *chptr = &ch; t = *chptr; ‘*chptr’ yeilds ‘c’. the asterisk ‘*’ operator is also known as ‘value of’ operator.

  12. #include <stdio.h> • int main(void) • { • char ch = 'c'; • char *chptr = &ch; • int i = 20; • int *intptr = &i; • float f = 1.20000; • float *fptr = &f; • char *ptr = "I am a string"; • printf("\n [%c], [%d], [%f], [%c], [%s]\n", *chptr, *intptr, *fptr, *ptr, ptr); • return 0; • }

  13. C Constant pointer char ch, c; char *ptr = &ch ptr = &c First, the pointer ‘ptr’ contained the address of ‘ch’ and in the next line it contained the address of ‘c’ But in case of a constant pointer, once a pointer holds an address, it cannot change it. third line would have not been valid.

  14. <type-of-pointer> *const <name-of-pointer> EX: #include<stdio.h> int main(void) { char ch = 'c'; char c = 'a'; char *constptr = &ch; // A constant pointer ptr = &c; // Trying to assign new address to a constant pointer. WRONG!!!! return 0; }

More Related