কম্পিউটার

C/C++ R-মান এক্সপ্রেশনে একটি ধাঁধা?


এখানে আমরা একটি ধাঁধা দেখব। ধরুন একটি প্রোগ্রাম আছে যা নীচে দেওয়া হয়েছে, আমাদের বলতে হবে আউটপুট কী হবে এবং কেন?

উদাহরণ

#include<iostream>
using namespace std;
int main() {
   int x = 0xab;
   ~x;
   cout << hex << x;
}

তাহলে আউটপুট কি হবে? ~x পরিপূরক অপারেশন করছে। তাহলে এটি কি হেক্স আকারে পরিপূরক ফলাফল দেখায়?

ভাল আউটপুট নিম্নলিখিত মত

আউটপুট

ab

সুতরাং, কোন পরিবর্তন নেই. কিন্তু কেন? কারণ হল ~x x কে তার পরিপূরক আকারে রূপান্তর করছে, কিন্তু সেই মানটি কোনো ভেরিয়েবলে বরাদ্দ করা হয়নি। অভিব্যক্তিটি R- মান অভিব্যক্তি। Lvalue ব্যবহার না করা পর্যন্ত এটি কিছু ভেরিয়েবলে সংরক্ষণ করা হবে না। যদি আমরা L-মান রাখি তাহলে এটি এরকম দেখাবে −

উদাহরণ

#include<iostream>
using namespace std;
int main() {
   int x = 0xab;
   x = ~x;
   cout << hex << x;
}

আউটপুট

ffffff54

  1. C/C++ এ putwchar() ফাংশন

  2. C/C++ এ memcpy()

  3. C/C++ এ AA গাছ?

  4. isgreater() C/C++ এ