Difference between revisions of "C programming/pointers"
From Teknologisk videncenter
m (Created page with "=Review of C Pointer Declarations= {| |- | int *p ||p is a pointer to int |- | int *p[13] ||p is an array[13] of pointer to int |- | int *(p[13]) ||p is an array[13] of pointer t...") |
m |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | =Basic pointer= | ||
+ | The following sourcecode demonstrates the basic pointer: | ||
+ | <source lang=c> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | int main( void ) { | ||
+ | int x = 100; | ||
+ | int *pointer; | ||
+ | |||
+ | pointer = &x; // Set pointer to address of <x> | ||
+ | |||
+ | printf("Value of int <pointer> points to: %d\n", *pointer); | ||
+ | |||
+ | // Changing the value of the int <pointer> points to | ||
+ | *pointer = *pointer + 99; | ||
+ | printf("<pointer> value %d and <x> value %d\n", *pointer, x); | ||
+ | |||
+ | // Working the actual addresses | ||
+ | printf("The address contained in <pointer> %p\n", pointer); | ||
+ | printf("The address of <x> %p - Should be the same as the above address!\n", &x); | ||
+ | printf("The <pointer> has it's own address also, which is %p\n", &pointer); | ||
+ | return(0); | ||
+ | } | ||
+ | </source> | ||
+ | |||
=Review of C Pointer Declarations= | =Review of C Pointer Declarations= | ||
{| | {| | ||
Line 21: | Line 46: | ||
|- | |- | ||
|} | |} | ||
+ | |||
+ | [[Category:C]] |
Latest revision as of 12:15, 26 May 2015
Basic pointer
The following sourcecode demonstrates the basic pointer:
#include <stdio.h>
int main( void ) {
int x = 100;
int *pointer;
pointer = &x; // Set pointer to address of <x>
printf("Value of int <pointer> points to: %d\n", *pointer);
// Changing the value of the int <pointer> points to
*pointer = *pointer + 99;
printf("<pointer> value %d and <x> value %d\n", *pointer, x);
// Working the actual addresses
printf("The address contained in <pointer> %p\n", pointer);
printf("The address of <x> %p - Should be the same as the above address!\n", &x);
printf("The <pointer> has it's own address also, which is %p\n", &pointer);
return(0);
}
Review of C Pointer Declarations
int *p | p is a pointer to int |
int *p[13] | p is an array[13] of pointer to int |
int *(p[13]) | p is an array[13] of pointer to int |
int **p | p is a pointer to a pointer to an int |
int (*p)[13] | p is a pointer to an array[13] of int |
int *f() | f is a function returning a pointer to int |
int (*f)() | f is a pointer to a function returning int |
int (*(*f())[13])() | f is a function returning ptr to an array[13] of pointers to functions returning int |
int (*(*x[3])())[5] | x is an array[3] of pointers to functions returning pointers to array[5] of ints |