Operations on struct variables in C
In C, the only operation that can be applied to struct variables is assignment. Any other operation (e.g. equality check) is not allowed on struct variables.
For example, program 1 works without any error and program 2 fails in compilation.
Program 1
#include <stdio.h> struct Point { int x; int y; }; int main() { struct Point p1 = {10, 20}; struct Point p2 = p1; // works: contents of p1 are copied to p2 printf ( " p2.x = %d, p2.y = %d" , p2.x, p2.y); getchar (); return 0; } |
Program 2
#include <stdio.h> struct Point { int x; int y; }; int main() { struct Point p1 = {10, 20}; struct Point p2 = p1; // works: contents of p1 are copied to p2 if (p1 == p2) // compiler error: cannot do equality check for // whole structures { printf ( "p1 and p2 are same " ); } getchar (); return 0; } |
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Please Login to comment...