关于二级指针的三个程序

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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值