Will the expression *p = p be disallowed by the compiler?

Asked by Last Modified  

Follow 0
Answer

Please enter your answer

Test Engineer

No, Because, here even though the value of p is accessed twice it is used to modify two different objects p and *p. i.e. let us take the value of p as 5, the address where p is stored at 100 location. now statement *p=p will override the value 200 with 5 i.e. P location is shifted from 100 to 5.
Comments

Thanks for the question Atharva, No because even though the value of p is accessed twice it is used to modify two different objects p and *p. Thanks, Team DishaaPro www.dishaapro.com
Comments

Compiler should disallow or at the least warn you, As no types were mentioned and given you are de-referencing using *p so presuming p is a pointer, For sake of simplicity, presume p is of type int* ie: int *p; then in statement below, lhs is of type int and rhs is of type int*, you shouldn't ...
read more
Compiler should disallow or at the least warn you, As no types were mentioned and given you are de-referencing using *p so presuming p is a pointer, For sake of simplicity, presume p is of type int* ie: int *p; then in statement below, lhs is of type int and rhs is of type int*, you shouldn't assign int* to an int. *p = p If you really want to do that (hope you understand what you are doing with your memory), then you should force typecast it to (int*), so that compiler doesn't generate a warning. Team SG-Tech.in read less
Comments

View 1 more Answers

Related Questions

What is "&" called in C language?
The Address Operator in C also called a pointer. This address operator is denoted by “&”. This & symbol is called an ampersand.
Soumya
0 0
5
What are the flaws of the C programming language?
The C programming language, while powerful and widely used, has some inherent flaws. One notable limitation is its lack of built-in support for dynamic memory management and bounds checking. This can lead...
Sounak
0 0
7
Why do we use # in C programming?
In the C programming language, # is used for preprocessor directives. The preprocessor is a program that runs before the compiler and processes special directives that begin with # . These directives allow...
Dhanya
0 0
5
What is the difference between n=1 and n==1 in the C language?
'=' is ASSIGNMENT operator , where as '==' is COMPARISON operator. int a=7; assigns the variable a an integer value 7 , where as a==7; checks if the VALUE of a is EQUAL to 7.
Soujanya
0 0
8
What is a local block in C programming?
the statements within the braces { } is known as local block
Rakhi
0 0
6

Now ask question in any of the 1000+ Categories, and get Answers from Tutors and Trainers on UrbanPro.com

Ask a Question

Related Lessons

Compiler vs Interpreter
Compiler Interpreter Convert all the code into binary format and execute. Convert one statement at a time and execute, then Convert next statement and execute. After conversion, source...

An Interesting discussion about malloc( ) and calloc( )
What are malloc( ) and calloc( )? Simply putting they are the predefined functions in C language. Malloc( ) and calloc( ) are two such functions which are used for more or less identical purpose and...

Can we store different data types in a stack?
Yesterday, one of my Facebook friend asked me this question. My answer is "yes", and in this post I will discuss how could we do this.I am a great supporter of working with unions and I will be using union...

C-Program Swapping Contents Of Variables Using Function [Call By Reference Method]
//Header Files #include#include // User defined functions swap with 2 pointer variables passed as an argument list void swap(int*i,int*j){ // Local variable temp int temp; // swapping contents using...

C and C++ programming with memory level debugging
Understanding C and C++ programming by using memory level debugging. Step 1: Understand the Memory map of C executable Step 2: Start memory level debugging using popular IDE Step 3: Find the memory...

Recommended Articles

Lasya Infotech is a Hyderabad based IT training institute founded in 2016 by O Venkat. Believing in his innovation, passion and persistence and with a diverse blend of experience, he started his brainchild to deliver exemplary professional courses to aspiring candidates by honing their skills. Ever since the institute envisions...

Read full article >

Brilliant Academy is one of the reputed institutes for B.Tech tuition classes. This institute is specialised in delivering quality tuition classes for B.E, Engineering - all streams and Engineering diploma courses. Incorporated in 2012, Brillant Academy is a brainchild of Mr Jagadeesh. The main motto of the academy is to...

Read full article >

Information technology consultancy or Information technology consulting is a specialized field in which one can set their focus on providing advisory services to business firms on finding ways to use innovations in information technology to further their business and meet the objectives of the business. Not only does...

Read full article >

Software Development has been one of the most popular career trends since years. The reason behind this is the fact that software are being used almost everywhere today.  In all of our lives, from the morning’s alarm clock to the coffee maker, car, mobile phone, computer, ATM and in almost everything we use in our daily...

Read full article >

Looking for C Language Classes?

Learn from the Best Tutors on UrbanPro

Are you a Tutor or Training Institute?

Join UrbanPro Today to find students near you