+ 2
Give the ouput and explain #include<iostream.h> void main() { int a =32, *ptr=&a; char ch='A' , &cho=ch; cho+=a; *ptr+=ch; cout<<a<<" "<<ch<<endl; }
5 Answers
+ 2
so, you have a few things going on here. let's break it down step by step.
first, you declare int a=32;
this will set the value of a to 32. then you int pointer ptr gets set to the memory address of a. so be ptr points back to a (you'll see later)
then you declare char ch='A', storing A in ch. then this line of code is a rather interesting one:
&cho=ch; essentially what you've done here is bound the variable cho to ch. so they share the same memory location. So rather than cho storing the value of ch's memory address, it stores whatever ch stores and vice versa. so to recap we have a, which is 32, ptr, which points back to a. ch which stores 'A', and cho which is referencing ch's value.
+ 4
now for the arithmetic : cho+=a takes the value of cho, a char, and adds a to it, an int. since 'A'=65 in ASCII, 65+32=97=a;. so when you call ch in your print statement, it takes the value of cho since they share the address now, and prints out the ASCII value of 97. now, *ptr+=ch; simply says point to the address stored in ptr, which is int a, and add the integer version of ch to it, now 97 since you've changed it prior. so 97+32 =129. so that's the reason why your output it 129 a
+ 3
sorry about splitting the response, would've been to big
+ 1
i don't indersen plz complit thid
0
destro Thanks a lot! đđ