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 use of "\n" in C language?
break a line into two and shift the remaining value/ characters to a new line.
Profile Photo
Tanush
0 0
View Comments5
What is C language?
it is a computer programming language, supporting structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations
Profile Photo
Uday
What exactly is \r in the C language?
In the C language, "\r" represents the carriage return character. When encountered in a string, it instructs the output device to return the cursor to the beginning of the current line. This character...
Profile Photo
Sajini
0 0
View Comments5
What is meant by “enum” in C?
An enum is a keyword in C language, it is an user defined data type. All properties of integer are applied on Enumeration data type It work like the Integer.
Profile Photo
Geetanjali
What is the benefit of using enum to declare a constant?
ENUMS.. Can give numerical values for Sunday, Monday,... Easy to use in coding... Makes the program more readable/ understandable, than using 1,2,3.. Etc.
Profile Photo
Sita
0 0
View Comments7

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

Ask a Question

Related Lessons

Facts about C language
C programming language was developed in 1972 by Dennis Ritchie at AT&T Bell Labs. It was developed to overcome the problems of languages such as B, BPCL. It was developed to write the Unix operating...
Profile Photo

C Program-String Palindrome
//Header files #include<stdio.h>#include<conio.h>#include<string.h> //Main function void main(){ char mystring; int i,length; int flag=0; //Function for clearing screen clrscr();...
Profile Photo

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

Datatypes in C Language
Data types in C Language Data types specify how we enter data into our programs and what type of data we enter. C language has some predefined set of data types to handle various kinds of data that...
Profile Photo

Array vs Linked List
Array Linked List Accessing element is easy. Accessing element is difficult compare to Array. Easy to use. Difficult to use. Memory is Fixed size. Memory is variable size. If...
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