-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpointer.c
More file actions
147 lines (120 loc) · 3.08 KB
/
Copy pathpointer.c
File metadata and controls
147 lines (120 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
// POINTER-------------------------------------------------
#include<stdio.h>
int main(){
int age = 22;
int *ptr = &age;
// print address
printf("%p\n",&age);
printf("%u \n",&age);
printf("%u\n",ptr);
printf("%p\n",ptr);
printf("%p\n",&ptr);
printf("%u\n",&ptr);
// print value
printf("%d\n",age);
printf("%d\n",*ptr);
printf("%d",*(&age));
return 0;
}
// ------------------------------------------------------------------------------
#include<stdio.h>
int main(){
int x;
int *ptr;
ptr = &x;
*ptr = 100;
printf("x = %d\n", x);
printf("*ptr = %d\n", *ptr);
*ptr = *ptr+5; // *ptr +=5;
printf("x = %d\n", x);
printf("*ptr = %d \n", *ptr);
*ptr = *ptr+1; // (*ptr)++;
printf("x = %d\n", x);
printf("*ptr = %d \n", *ptr);
return 0;
}
// POINTER TO POINTER ---------------------------------------------------------
// Print the value of 'i' from its pointer to pointer. ------------------------
#include<stdio.h>
int main (){
int i =5;
int *ptr = &i;
int **pptr = &ptr;
printf("%d", **pptr);
return 0;
}
// call by Value -------------------------------------------------
#include<stdio.h>
void square(int n);
int main (){
int number = 4;
square(number);
printf("number = %d\n", number);
return 0;
}
void square(int n){
n = n*n;
printf("square = %d\n", n);
}
// call by reference / pointer -----------------------------------------
#include<stdio.h>
void square(int n);
void _square(int* n);
int main (){
int number = 4;
square(number);
printf("number = %d\n", number);
_square(&number);
printf("number = %d\n", &number);
return 0;
}
void square(int n){
n = n*n;
printf("square = %d\n", n);
}
void _square(int* n){
*n = (*n)*(*n);
printf("square = %d\n", *n);
}
// Swap 2 numbers, a and b.(swap ka mean interchange karna)--------------------------------------------------------------
#include<stdio.h>
void swap1(int *a, int *b);
int main (){
int x = 3, y = 5;
swap1(&x,&y);
printf("x = %d & y = %d\n", x,y);
return 0;
}
// call by reference
void swap1(int *a, int *b){
int t =*a;
*a=*b;
*b= t;
}
// will the address output be same -----------------------------
#include<stdio.h>
void printadress(int *n);
int main(){
int n= 4;
printadress(&n);
printf("address of n is : %u\n" , &n);
return 0;
}
void printadress(int *n){
printf("address of n is : %u\n" , n);
}
// Write a function to calculate the sum, product & average of 2 numbers. print that average in the main function.
#include<stdio.h>
void work(int a, int b, int *sum, int *prod, int *avg);
int main (){
int a = 3, b = 5;
int sum, prod , avg;
work(a, b, &sum, &prod, &avg);
printf("sum = %d, prod = %d, avg = %d\n", sum, prod, avg);
return 0;
}
void work(int a, int b, int *sum, int *prod, int *avg){
*sum = a+b;
*prod = a*b;
*avg = (a+b)/2;
}