Download - pointer - struct anlatımı
-
7/29/2019 pointer - struct anlatm
1/4
03 Mart 2013 Pazar 14:21
C Array of String
In this section, you will learn how to create an array of string using pointers
in C.
The declaration of an array of character pointers is an extremely useful
extension to single string pointer declarations. In the example below, A two
element array of character pointers where each element is a pointer to a
character. We have initialized the array with two elements by giving index
numbers. In C, format specifier %s is used with the printf to print the string.
Here is the code:
ARRAYOF.C
#include
#include
void main()
{
clrscr();
char *array[2];
array[0]="Hello";
array[1]="World";
printf("The Array of String is = %s,%s\n", array[0], array[1]);
getch();
}
C array of pointers
In this section, you will learn how to create array of pointers.
A pointer is a variable that contains the memory location of another variable.
The values you assign to the pointers are memory addresses of other variables (
or other pointers). A running program gets a certain space in the main memory.
Syntax of declaring a pointer:
data_type_name * variable name
First of all, specify the data type of data stored in the location, which is to
identified by the pointer. The asterisk tells the compiler that you are
creating a pointer variable. Then specify the name of variable.
You can see in the given example, we have created an array of pointers of
maximum size 3. Then we have assigned the objects of array pointer.
The address of the variable.
array[0] = &x;
array[1] = &y;
array[2] = &z;
Here is the code:
ARRAYPOI.C
#include
#include
-1-
-
7/29/2019 pointer - struct anlatm
2/4
03 Mart 2013 Pazar 14:21
main()
{
clrscr();
int *array[3];
int x = 10, y = 20, z = 30;
int i;
array[0] = &x;
array[1] = &y;
array[2] = &z;
for (i=0; i< 3; i++)
{
printf("The value of %d= %d ,address is %u\t \n", i, *(array[i]),
array[i]);
}
getch();
return 0;
}
C Structure Pointer
This section illustrates you the concept of Structure Pointer in C. You can see
in the given example, we want to access the employee's information through
structure pointer. For that, we declare the structure type st consisting of
members id, name and address. Then we have declared a structure pointer as:
struct st employee, *stptr;
We point the pointer to employee with the expression stptr = &employee. Then
access the given members by de-referencing the pointer. For this, we have used
another structure selection operator which works on pointers to structures. If
p is a pointer to a structure and m is a member of that structure, then p->m.
We set the values of specified members as:
stptr->id = 1;
stptr->name = "Angelina";
stptr->address ="Rohini,Delhi";
Here is the code:
STPOINTE.C
#include
#include
int main()
{
struct st
{
int id;
char *name;
char *address;
-2-
-
7/29/2019 pointer - struct anlatm
3/4
03 Mart 2013 Pazar 14:21
};
struct st employee, *stptr;
stptr = &employee;
stptr->id = 1;
stptr->name = "Angelina";
stptr->address ="Rohini,Delhi";
printf("Employee Information: id=%d\n%s\n%s\n", stptr->id, stptr->name,
stptr->address);
getch();
return 0;
}
C Pointer to a function
In this section, you will learn how to use 'Pointer' function in C.
C provides a special feature of pointer to a function. As you know that every
function defined in C language have a base address attached to it. This base
address acts as an entering point into that function. This address can be
stored in a pointer known as function pointer. The pointer to a function is the
declaration of pointer that holds the base address of the function. The
declaration of a pointer to a function is:
Syntax :
return_type (* pointer_name) ( variable1_type variable1_name , variable2_type
variable2_name , variable3_type variable3_name .................);
You can see in the given example, we have create a function mul to find the
product of three numbers. Then we have declared the function pointer for
storing the base address of function mul in the following way:
int (*function_pointer) (int,int,int);
Here is the code:
POINTERF.C
#include
#include
int mul(int a, int b, int c)
{
return a*b*c;
}
void main()
{
int (*function_pointer)(int, int, int);
function_pointer = mul;
printf("The product of three numbers is:%d", function_pointer(2, 3, 4));
-3-
-
7/29/2019 pointer - struct anlatm
4/4
03 Mart 2013 Pazar 14:21
getch();
}
C Multiple Indirection
This section illustrates you the concept of Multiple Indirection.
C permits the pointer to point to another pointer. This creates many layers of
pointer and therefore called as multiple indirection. A pointer to a pointer
has declaration is similar to that of a normal pointer but have more asterisk
sign before them. This indicates the depth of the pointer. You can see in the
given example, we have declared an integer variable i initialized to 100. The
statement int ** pt creates a pointer which points to pointer to a variable
with int value. We have passed the value of i to pointer pt2 and to pass the
value of pt2 to pt1, we have used the statement pt1 = &pt2; which shows the
Multiple Indirection.
Here is the code:
MULTINDI.C
#include
#include
void main()
{
int i =100;
int **pt1;
int *pt2;
clrscr();
pt2 = &i;
pt1 = &pt2;
printf("The value of **pt1 = %d \n "+
"The value of *pt2 = %d", **pt1, *pt2);
getch();
}
-4-