#include<stdio.h>
/*
'*' is the dereference operator; it will grab the value at a memory address.
it is also used to declare a pointer variable.
'&' is the address-of operator; it will grab the memory address of a variable.
*/
int main(int argc, char *argv[]) {
int x = 45; // Declare integer x to be 45.
int *int_ptr = &x; // int_ptr now points to the value of x. Any changes made to the value at int_ptr will also modify x.
x = 5; // Now, the value of x is 5. This means that the value at int_ptr is now 5.
*int_ptr = 2; // Now, the value at int_ptr is 2. This means that x is now 0.
int_ptr = NULL; // int_ptr now no longer points to anything. Make sure you never leave a dangling pointer!
return 0;
}
#include <stdio.h>
int main()
{
int j;
int i;
int *p; // declare pointer
i = 7;
p = &i; // The pointer now holds the address of i
j = *p;
printf("i = %d
", i); // value of i
printf("j = %d
", j); // value of j
printf("*p = %d
", p); // the address held by the pointer
*p = 32; // asigns value to i via the pointer
printf("i = %d
", i); // value of i
printf("j = %d
", j); // value of j
printf("*p = %d
", p); // the address held by the pointer
printf("&i = %d
", &i); // address of i
return 0;
}
// Variable declaration
type var;
// Get the address (a pointer to) a variable
// &var -> type*
// Pointer declaration(s)
type* ptr_a;
type* ptr_b;
// Change what pointer is pointing to
ptr_a = &var;
ptr_b = ptr_a;
// Can declare and assign in 1 line
type* ptr_c = &var;
type* ptr_d = ptr_c;
// "Pointers" are also variables
// &ptr_d -> type**
type** ptr_e = &ptr_d;
// Getting values from pointers
// *ptr_d -> type
// *ptr_e -> type*
type value = *ptr_d;
// Basic syntax
ret_type (*fun_ptr)(arg_type1, arg_type2,..., arg_typen);
// Example
void fun(int a)
{
printf("Value of a is %d
", a);
}
// fun_ptr is a pointer to function fun()
void (*fun_ptr)(int) = &fun;
#include <stdio.h>
int main()
{
int *p;
int var = 10;
p= &var;
printf("Value of variable var is: %d", var);
printf("
Value of variable var is: %d", *p);
printf("
Address of variable var is: %p", &var);
printf("
Address of variable var is: %p", p);
printf("
Address of pointer p is: %p", &p);
return 0;
}
#output
#Value of variable var is: 10
#Value of variable var is: 10
#Address of variable var is: 0x7fff5ed98c4c
#Address of variable var is: 0x7fff5ed98c4c
#Address of pointer p is: 0x7fff5ed98c50
#include<stdio.h>
#include<stdlib.h>
main()
{
int *p;
p=(int*)calloc(3*sizeof(int));
printf("Enter first number
");
scanf("%d",p);
printf("Enter second number
");
scanf("%d",p+2);
printf("%d%d",*p,*(p+2));
free(p);
}