এখানে আমরা দেখব স্ট্রাকচার ভেরিয়েবলের ওপর কী ধরনের অপারেশন করা যায়। মূলত একটি অপারেশন করা যায়: অ্যাসাইনমেন্ট অপারেশন। সমতা চেক বা অন্যান্য অপারেশন স্ট্রাকচারের জন্য উপলব্ধ নয়।
উদাহরণ ১: অ্যাসাইনমেন্ট
#include <stdio.h>
typedef struct { // কমপ্লেক্স অবজেক্টের জন্য স্ট্রাকচার
int real, imag;
} complex;
void displayComplex(complex c) {
printf("(%d + %di)\n", c.real, c.imag);
}
int main() {
complex c1 = {5, 2};
complex c2 = {8, 6};
printf("Complex numbers are:\n");
displayComplex(c1);
displayComplex(c2);
}
আউটপুট
Complex numbers are: (5 + 2i) (8 + 6i)
এটি ঠিকঠাক কাজ করে কারণ আমরা স্ট্রাকচারে মান অ্যাসাইন করেছি। এখন যদি দুটি স্ট্রাকচার অবজেক্ট তুলনা করতে চাই, তবে কী হবে তা দেখি।
উদাহরণ ২: তুলনা (কাম্পাইল এরর)
#include <stdio.h>
typedef struct {
int real, imag;
} complex;
void displayComplex(complex c) {
printf("(%d + %di)\n", c.real, c.imag);
}
int main() {
complex c1 = {5, 2};
complex c2 = c1;
printf("Complex numbers are:\n");
displayComplex(c1);
displayComplex(c2);
if (c1 == c2) {
printf("Complex numbers are same.");
} else {
printf("Complex numbers are not same.");
}
}
আউটপুট
[Error] invalid operands to binary == (have 'complex' and 'complex')