&प्रतीक का प्रयोग C++ में एक ऑपरेटर के रूप में किया जाता है। इसका उपयोग 2 अलग-अलग जगहों पर किया जाता है, एक बिटवाइज़ और ऑपरेटर के रूप में और दूसरा ऑपरेटर के पॉइंटर एड्रेस के रूप में।
Bitwise AND
बिटवाइज़ और ऑपरेटर (&) पहले ऑपरेंड के प्रत्येक बिट की तुलना दूसरे ऑपरेंड के उस बिट से करता है। यदि दोनों बिट्स 1 हैं, तो बिट को 1 पर सेट किया जाता है। अन्यथा, बिट को 0 पर सेट किया जाता है। बिटवाइज के लिए दोनों ऑपरेंड और ऑपरेटर इंटीग्रल प्रकार के होने चाहिए।
उदाहरण
#include <iostream> using namespace std; int main() { unsigned short a = 0x5555; // pattern 0101 ... unsigned short b = 0xAAAA; // pattern 1010 ... cout << hex << ( a & b ) << endl; }
आउटपुट
यह आउटपुट देता है -
0
ऑपरेटर का पता
C++ टू-पॉइंटर ऑपरेटर प्रदान करता है, जो ऑपरेटर का पता (&) और इनडायरेक्शन ऑपरेटर (*) है।
एक पॉइंटर एक वेरिएबल होता है जिसमें दूसरे वेरिएबल का पता होता है या आप कह सकते हैं कि एक वेरिएबल जिसमें दूसरे वेरिएबल का पता होता है, दूसरे वेरिएबल को "पॉइंट" करने के लिए कहा जाता है। एक वैरिएबल कोई भी डेटा प्रकार हो सकता है जिसमें ऑब्जेक्ट, स्ट्रक्चर या फिर से पॉइंटर भी शामिल है।
ऑपरेटर (&) का पता, और यह * का पूरक है। यह एक यूनरी ऑपरेटर है जो अपने ऑपरेंड द्वारा निर्दिष्ट वेरिएबल (आर-वैल्यू) का पता देता है। उदाहरण के लिए,
उदाहरण
#include <iostream> using namespace std; int main () { int var; int *ptr; int val; var = 3000; // take the address of var ptr = &var; // take the value available at ptr val = *ptr; cout << "Value of var :" << var << endl; cout << "Value of ptr :" << ptr << endl; cout << "Value of val :" << val << endl; return 0; }
आउटपुट
जब उपरोक्त कोड को संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Value of var :3000 Value of ptr :0xbff64494 Value of val :3000