How do I swap two variables in one line in C/C++, Python and Java?

Asked by Last Modified  

Follow 4
Answer

Please enter your answer

AI Engineer | Full Stack Developer

you can use this following example : int main() { int x = 5, y = 10; (x ^= y), (y ^= x), (x ^= y); printf("After Swapping values of x and y are %d %d", x, y); return 0; }
Comments

Advance Excel And VBA Training

How to swap in a single line without using library function? Python: In Python, there is a simple and syntactically neat construct to swap variables, we just need to write “x, y = y, x”. C/C++: Below is one generally provided classical solution // Swap using bitwise XOR (Wrong Solution in C/C++) x...
read more
How to swap in a single line without using library function? Python: In Python, there is a simple and syntactically neat construct to swap variables, we just need to write “x, y = y, x”. C/C++: Below is one generally provided classical solution // Swap using bitwise XOR (Wrong Solution in C/C++) x ^= y ^= x ^= y; The above solution is wrong in C/C++ as it causes undefined behaviour (compiler is free to behave in any way). The reason is, modifying a variable more than once in an expression causes undefined behaviour if there is no sequence point between the modifications. However, we can use comma to introduce sequence points. So the modified solution is // Swap using bitwise XOR (Correct Solution in C/C++) // sequence point introduced using comma. (x ^= y), (y ^= x), (x ^= y); Java: In Java, rules for subexpression evaluations are clearly defined. The left hand operand is always evaluated before right hand operand. In Java, the expression “x ^= y ^= x ^= y;” doesn’t produce the correct result according to Java rules. It makes x = 0. However, we can use “x = x ^ y ^ (y = x);” Note the expressions are evaluated from left to right. If x = 5 and y = 10 initially, the expression is equivalent to “x = 5 ^ 10 ^ (y = 5);”. Note that we can’t use this in C/C++ as in C/C++, it is not defined whether left operand or right operand is executed for any operator. Output: After Swapping values of x and y are 10 5 read less
Comments

Advance Excel And VBA Training

(x ^= y), (y ^= x), (x ^= y);
Comments

View 1 more Answers

Related Questions

What is the best way to comment out a section of code that contains comments?
you can use /* multiple line comments */ and // for single line comments
Profile Photo
Prasad
How do you print an address?
int main(){ int a=5; printf("Address of variable a is: %d",&a); return 0; }
Profile Photo
Prakash
2 0
View Comments6
How and where do I start learning C programming?
Goals Fundamental concepts of C programming language. Write your first C program. Understand different keywords & Data types in C. Understand Variables & Scope of Variables. Learn Enumeration or Enum...
Profile Photo
Krishna
0 0
View Comments5
Can anybody provide me error free coding for graphic program in C??? Animated Smiley program Rotating Fan progran Sunrise program
#include graphics.h #include conio.h #include stdlib.h #include dos.h main() { int gd = DETECT, gm,area,temp1,temp2,left =25,top=75; void *p; initgraph(&gd,&gm,”C:\TC\BGI”); setcolor(YELLOW); circle(50,100,25); setfillstyle(SOLID_FILL,YELLOW); floodfill(50,100,YELLOW); setcolor(BLACK); setfillstyle(SOLID_FILL,BLACK); fillellipse(44,85,2,6); fillellipse(56,85,2,6); ellipse(50,100.205,335,20,9); ellipse(50,100.205,335,20,10); ellipse(50,100.205,335,20,11); area...
Profile Photo
Gayu
0 0
View Comments8

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

Ask a Question

Related Lessons

Is It Fine To Write “void main()” Or “main()” In C/C++?
The definition: void main() { /* ... */ } Is not and never has been C++, nor has it even been C. See the ISO C++ standard 3.6.1 or the ISO C standard 5.1.2.2.1. A conforming...
Profile Photo

C Program-Error Handling[Program Exit Status]
//Header files #include<stdio.h>#include<conio.h>#include<stdlib.h> //Main Function void main(){ int dividend=20; int divisor=5; int quotient; //Function for clearing screen clrscr();...
Profile Photo

Pointers Concept
Every variable has a memory location and every memory location has its address defined which can be accessed using ampersand (&) operator, which denotes an address in memory. Consider the following...
Profile Photo

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...
Profile Photo

Variables
Variables in C Language:A variable is a name that may be used to store a data value. Unlike constant, variables are changeable, we can change value of a variable during execution of a program. A programmer...
Profile Photo

Recommended Articles

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 >

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 >

Applications engineering is a hot trend in the current IT market.  An applications engineer is responsible for designing and application of technology products relating to various aspects of computing. To accomplish this, he/she has to work collaboratively with the company’s manufacturing, marketing, sales, and customer...

Read full article >

Whether it was the Internet Era of 90s or the Big Data Era of today, Information Technology (IT) has given birth to several lucrative career options for many. Though there will not be a “significant" increase in demand for IT professionals in 2014 as compared to 2013, a “steady” demand for IT professionals is rest assured...

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