printf("After decrement: Address of p variable is %u \n",p);
}
Output
Address of p variable is 3214864300
After decrement: Address of p variable is 3214864296
Addition(+)
We can add a value to the pointer variable.
formula of adding value to pointer
new_address= current_address + (number * size_of(data type))
Note:
32 bit
For 32 bit int variable, it will add 2 * number.
64 bit
For 64 bit int variable, it will add 4 * number.
Example:
#include <stdio.h>
void main(){
int number=50;
int *p;//pointer to int
p=&number;//stores the address of number variable
printf("Address of p variable is %u \n",p);
C PROGRAMMING Page 211
, p=p+3; //adding 3 to pointer variable
printf("After adding 3: Address of p variable is %u \n",p);
}
Output
Address of p variable is 3214864300
After adding 3: Address of p variable is 3214864312
Subtraction (-)
Like pointer addition, we can subtract a value from the pointer variable. The formula
of subtracting value from pointer variable.
new_address= current_address - (number * size_of(data type))
Example:
#include <stdio.h>
void main(){
int number=50;
int *p;//pointer to int
p=&number;//stores the address of number variable
printf("Address of p variable is %u \n",p);
p=p-3; //subtracting 3 from pointer variable
printf("After subtracting 3: Address of p variable is %u \n",p);
}
Output
C PROGRAMMING Page 212
, Address of p variable is 3214864300
After subtracting 3: Address of p variable is 3214864288
Passing an Array to a Function
If you want to pass a single-dimension array as an argument in a function, you would have to
declare a formal parameter in one of following three ways and all three declaration methods
produce similar results because each tells the compiler that an integer pointer is going to be
received. Similarly, you can pass multi-dimensional arrays as formal parameters.
1) Formal parameters as a pointer –
void myFunction(int *param) {
.
.
.
}
2) Formal parameters as a sized array –
void myFunction(int param[10]) {
.
.
.
}
3) Formal parameters as an unsized array −
void myFunction(int param[10]) {
.
.
.
}
Example1: pass an entire array to a function argument
#include <stdio.h>
/* function declaration */
double getAverage(int arr[], int size);
int main () {
/* an int array with 5 elements */
int balance[5] = {1000, 2, 3, 17, 50};
C PROGRAMMING Page 213
}
Output
Address of p variable is 3214864300
After decrement: Address of p variable is 3214864296
Addition(+)
We can add a value to the pointer variable.
formula of adding value to pointer
new_address= current_address + (number * size_of(data type))
Note:
32 bit
For 32 bit int variable, it will add 2 * number.
64 bit
For 64 bit int variable, it will add 4 * number.
Example:
#include <stdio.h>
void main(){
int number=50;
int *p;//pointer to int
p=&number;//stores the address of number variable
printf("Address of p variable is %u \n",p);
C PROGRAMMING Page 211
, p=p+3; //adding 3 to pointer variable
printf("After adding 3: Address of p variable is %u \n",p);
}
Output
Address of p variable is 3214864300
After adding 3: Address of p variable is 3214864312
Subtraction (-)
Like pointer addition, we can subtract a value from the pointer variable. The formula
of subtracting value from pointer variable.
new_address= current_address - (number * size_of(data type))
Example:
#include <stdio.h>
void main(){
int number=50;
int *p;//pointer to int
p=&number;//stores the address of number variable
printf("Address of p variable is %u \n",p);
p=p-3; //subtracting 3 from pointer variable
printf("After subtracting 3: Address of p variable is %u \n",p);
}
Output
C PROGRAMMING Page 212
, Address of p variable is 3214864300
After subtracting 3: Address of p variable is 3214864288
Passing an Array to a Function
If you want to pass a single-dimension array as an argument in a function, you would have to
declare a formal parameter in one of following three ways and all three declaration methods
produce similar results because each tells the compiler that an integer pointer is going to be
received. Similarly, you can pass multi-dimensional arrays as formal parameters.
1) Formal parameters as a pointer –
void myFunction(int *param) {
.
.
.
}
2) Formal parameters as a sized array –
void myFunction(int param[10]) {
.
.
.
}
3) Formal parameters as an unsized array −
void myFunction(int param[10]) {
.
.
.
}
Example1: pass an entire array to a function argument
#include <stdio.h>
/* function declaration */
double getAverage(int arr[], int size);
int main () {
/* an int array with 5 elements */
int balance[5] = {1000, 2, 3, 17, 50};
C PROGRAMMING Page 213