#include
using namespace std;
int main()
{
char ch1='I',ch2='Q';
int n1=1, n2=6;
double d1=1.25,d2=20.5;
char *a,*b;
a=&ch1;b=&ch2;
int *c,*d;
c=&n1;d=&n2;
double *e,*f;
e=&d1;f=&d2;
cout<<a<<" "<<b<<endl;
cout<<c<<" "<<d<<endl;
cout<<e<<" "<<f<<endl;
cout<<*a<<" "<<*b<<endl;
cout<<*c<<" "<<*d<<endl;
cout<<*e<<" "<<*f<<endl;
*a+=32; *b+=32;
*c-=5; *d-=5;
*e+=10.0;*f+=10.0;
cout<<*a<<" "<<*b<<endl;
cout<<*c<<" "<<*d<<endl;
cout<<*e<<" "<<*f<<endl;
return 0;
}
cout<<a 默认进行处理,输出a所指向的字符串。
写成这样,cout<<(void *)a 因为void型, cout没法输出,只能乖乖输出指针
因为cout对char*重载了,会输出字符串而不是地址
用cout << (int)*a
看看
char *a
因为输出就是字符串,不是地址,需要输出字符串的地址 需要输出首地址
cout<< &a[0]
首先要明确a是一个字符指针变量,那么(void *)a就是求的这个指针的地址