Difference between asterisk and ampersand operators in c
Address Operator (& - Ampersand):
Returns address of the given variable. Consider the following example,
int *ptr, var = 10;
ptr = &var;
ptr = &var sets the address of the variable var to pointer ptr. & is also called as reference operator.
Let us try to understand the purpose of reference operator using the following example program.
#include <stdio.h>
int main() {
int var = 10, *ptr;
/* assigning address of variable var to pointer ptr */
ptr = &var;
/* printing the address of the variable var */
printf("Address of var is 0x%x\n", &var);
/* printing the value of pointer ptr */
printf("Value of ptr is 0x%x\n", ptr);
return 0;
}
Output:
jp@jp-VirtualBox:~/$ ./a.out
Address of var is 0xbfdf202c
Value of ptr is 0xbfdf202c
Indirection Operator('*' - asterisk):
The dereference operator is an unary operator which returns the value of the pointee by dereferencing the value(address) in pointer variable. Consider the following example,
int var1 = 10, var2;
int *ptr; // '*' used for declaration
ptr = &var;
var2 = * ptr; //'*' used for deferencing
The above statement(var2 = *ptr) dereferences the address in ptr and assigns the pointee value(value of var1) to var2. Now, the value of var2 becomes 10. * is also called as dereference operator.
Let us try to understand the purpose of dereference operator using the following example program.
#include <stdio.h>
int main() {
int var1 = 10, var2;
int *ptr;
/* assigning the address of variable var1 to pointer ptr */
ptr = &var1;
/* assigning dereferenced value to var2 */
var2 = *ptr;
/* printing addresses and values of the variables */
printf("Address of var1 is 0x%x\n", &var1);
printf("Address of var2 is 0x%x\n", &var2);
printf("Value of ptr is 0x%x\n", ptr);
printf("Value of var1 is %d\n", var1);
printf("Value of *ptr is %d\n", *ptr);
printf("Value of var2 is %d\n", var2);
return 0;
}
Output:
jp@jp-VirtualBox:~/$ ./a.out
Address of var1 is 0xbff7c72c
Address of var2 is 0xbff7c728
Value of ptr is 0xbff7c72c
Value of var1 is 10
Value of *ptr is 10
Value of var2 is 10
Difference Between Asterisk And Ampersand Operators In C >>>>> Download Now
ReplyDelete>>>>> Download Full
Difference Between Asterisk And Ampersand Operators In C >>>>> Download LINK
>>>>> Download Now
Difference Between Asterisk And Ampersand Operators In C >>>>> Download Full
>>>>> Download LINK MW
Oatciforba1981 Leslie Gray link
ReplyDeleteclaszutconsdoor