//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
慕尼黑5688855
相关分类