Address of a variable in c

Location in a memory where a variable stores its data or value is known as address of variable. To know address of any variable c has provided a special unary operator & which is known as deference operator or address operator. It operator is only used with variables not with the constant. For example:

#include<stdio.h>
int main(){
    int a=5;
    printf("Address of variable a is: %d",&a);
    return 0;
}

We cannot write: &&a, because:

&&a=& (&a) =& (address of variable a) =& (a constant number)

And we cannot use address operator with constant.

Important points about address of variables in c:

(1)Address of any variable in c is an unsigned integer. It cannot be a negative number. So in printf statement we should use %u instead of %d, to print the address of any variable.

%d: It is used to print signed decimal number.

%u: It is used to print unsigned decimal number.

Since, if the address of any variable will beyond the range of signed short int it will print a cyclic value.

(2)Address of any variable must be within the range 0000 to FFFF in hexadecimal number format or 0 to 65535 i.e. range of unsigned short int in c. To print the address of any variable in hexadecimal number format by printf function we should use %x or %X.

%x: To print a number in hexadecimal format using 0 to 9 and a, b, c, d, e, f.

%X: To print a number in hexadecimal format using 0 to 9 and A, B, C, D, E, F.

(3)A programmer cannot know at which address a variable will store the data. It is decided by compiler or operating system.

(4)Any two variables in c cannot have same physical address.

(5)Address of any variable reserve two bytes of memory spaces.

(6) Address of any variable in c is not integer type so to assign an address to a integral variable we have to type cast the address. For example:

#include<stdio.h>
int main(){
    int a=100;
    unsigned int b=(unsigned)&b;
    printf("%u",b);
    return 0;
}

Address arithmetic in c:

(1) We can subtract address of any two variables.  For example:

#include<stdio.h>
int main(){
    int a;
    int b;
    printf("%d",&b-&a);
    return 0;
}

(2)We cannot add, multiply, divide two addresses.

(3) we can add or subtract a integer number with address.

(3)Other operators which can be used with addresses are:

(a)Negation operator:!

(b)Size operator: sizeof

(c)Type casting operator: (Type)

(e) Deference operator: *

(f)Logical operator: &&, ||

Example:

#include<stdio.h>
int main(){
    int a=12,b;
    printf("%d",!&a);
    printf("%d",sizeof(&a));
    printf("%d",(int)&a);
    printf("%d",*&a);
    printf("%d  %d %d %d",&a&&&b,&a&&b,&a||&b,&a||b);
    return 0;

13 comments:

Anonymous said...

give d ans of above prog

Anonymous said...

plz giv the ans of above prog

Anonymous said...

mention the output

Anonymous said...

mention the output..

Anonymous said...

Pls mention the o/p for the abv pgm....thank u

Unknown said...

0
4
-1081010724
12
1 0 1
1

Mukesh Kumar said...

Wow!
Very good explanation.
You are great.

lokesh said...

I got wonderful information from this blog. Thanks for sharing this post. it becomes easy to read and understand the information.
Data Science Course in Chennai
Data Science Courses in Bangalore
Data Science Course in coimbatore
Data Science Course in Hyderabad
Data Science Training in Bangalore
Best Data Science Courses in Bangalore
Data Science Institute in Bangalore
Data Science Training Institutes in Bangalore
AWS Training in Bangalore
DevOps Training in Bangalore

sasi said...

I really enjoyed this article. I need more information to learn so kindly update it.
Salesforce Training in Chennai
salesforce training in bangalore
Salesforce Course in bangalore
best salesforce training in bangalore
salesforce institute in bangalore
salesforce developer training in bangalore
Big Data Course in Coimbatore
Python Training in Bangalore
salesforce training in marathahalli
salesforce institutes in marathahalli

Vijayakash said...

Tally Course | Tally Institutei

I am glad that I have visited this blog. Really helpful, eagerly waiting for more updates.

Unknown said...

python course in coimbatore
java course in coimbatore
python training in coimbatore
java training in coimbatore
php course in coimbatore
php training in coimbatore
android course in coimbatore
android training in coimbatore
datascience course in coimbatore
datascience training in coimbatore
ethical hacking course in coimbatore
ethical hacking training in coimbatore
artificial intelligence course in coimbatore
artificial intelligence training in coimbatore
digital marketing course in coimbatore
digital marketing training in coimbatore
embedded system course in coimbatore
embeddedsystem training in coimbatore

Vijayakash said...

aws interview questions and answers for freshers

AWS Interview Questions and Answers for freshers and experienced to get your dream job in AWS! 101 AWS Interview Questions for Freshers, aws interview questions and answers for experienced

shree harini said...

python course in coimbatore
python training in coimbatore
java course in coimbatore
java training in coimbatore
android course in coimbatore
android training in coimbatore
php course in coimbatore
php training in coimbatore
digital marketing course in coimbatore
digital marketing training in coimbatore
software testing course in coimbatore
software testing training in coimbatore