为了账号安全,请及时绑定邮箱和手机立即绑定

c++指针数组,指向指针的指针

c++指针数组,指向指针的指针

C++
炎炎设计 2018-07-14 14:22:22
//1 int i = 0;  int j =1; int l = 2; int *p,*q,*m; p = &i; q = &j; m = &l; int *a[3]={p,q,m}; int ** b = a; for(int i = 0; i<3; i++){     cout<<a[i]<<endl;// 00FCFC40  00FCFC34   00FCFC28 } cout<<endl; for(int i = 0; i<3; i++){     cout<<*(b+i)<<endl;// 00FCFC40  00FCFC34   00FCFC28 } cout<<endl; for(int i = 0; i<3; i++){     cout<<**(b+i)<<endl;// 0  1   2 } //2 char *name[3]={"java","c++","pascal"}; char ** k = name; cout<<name<<endl;//0133F898 为指针数组首元素的首地址; cout<<name[0]<<endl;//java 输出以该地址开始的字符串。 cout<<*(k)<<endl;//java  等价于name[0] (按照1来说,指向指针的指针) *k 为 什么为输出java 这就不知道了?????????不应该也是地址吗? cout<<**(k)<<endl;//j 第一个字符串中第一个字符   k是数组首元素的地址,类型为char,**k就表示为j。这是因该的。 cout<<*(*(k)+1)<<endl;//a
查看完整描述

1 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

K指向的是数组name的首地址 , 而这个首地址是一个指针的地址 , 也就是一个指针. 这个指针最终指向内容"java" ,就相当于:
char *a ="java";
char *b = a;
这样你*b 输出的就是"java"呀

查看完整回答
反对 回复 2018-07-27
  • 1 回答
  • 0 关注
  • 603 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信