1、二级指针的相关问题
#include "iostream"
#include "string"
#include "cmath"
using namespace std;
int main()
{
char ch='a';
char *p1=&ch;
char **p=&p1;
cout<<ch<<endl;
cout<<p1<<endl;
cout<<&ch<<endl;
cout<<*p1<<endl;
cout<<p<<endl;
cout<<**p<<endl;
char *p3=NULL;
//cout<<p3<<endl;
//cout<<*p3<<endl;
char **p4=&p3;
cout<<p4<<endl;
//cout<<*p4<<endl;
cout<<**p4<<endl;
}
思考上面的输出是什么?
2、如下程序,输出是什么?
#include "iostream"
using namespace std;
int main()
{
int a=12;
int *p=&a;
int **p1=&p;
cout<<a<<endl;
cout<<&a<<endl;
cout<<p<<endl;
cout<<*p<<endl;
cout<<p1<<endl;
cout<<*p1<<endl;
cout<<**p1<<endl;
}
3、如下程序的输出是什么?
#include "iostream"
using namespace std;
int main()
{
int *p=NULL;
int **p1=&p;
cout<<p<<endl;
//cout<<*p<<endl;
cout<<p1<<endl;
cout<<*p1<<endl;
cout<<**p1<<endl;
}
void GetMM(char **p,int n){
if(*p!=NULL)
*p=(char*)malloc(n);
(*p)[1]='a';
}
int main()
{
char *str=NULL;
GetMM(&str,10);
}
#include "iostream"
using namespace std;
union A{
int b;
char ch[2];
};
int main()
{
A a;
a.ch[0]=0x38;
a.ch[1]=0x39;
printf("%x",a.b);//3938
}