<学习笔记>关于指针数组

字符串指针数组 

#include <iostream> 
using namespace std;
int main()
{ 
char *p[]={"BOOL","OPK","H","SP"}; 
cout<<p<<endl;//B的地址 
cout<<*p<<" "<<p[0]<<endl;//BOOL
cout<<*p[0]<<" "<<p[0][0]<<" "<<*(p[0]+1)<<p[0][1]<<endl;//B B O O  
cout<<*(p+1)<<" "<<p[1]<<endl;//OPK OPk

int i;
for (i=3;i>=0;i--,i--)
{
cout<<*p[i];//S O 
cout<<endl;	
}
for (i=3;i>=0;i--,i--)
{
cout<<(*p)[i];// L O
cout<<endl;	
}
}

 这行代码定义了一个字符指针数组 

p[i]指向首字母但输出是整个字符串 即第i个字符串[]有解引用的意思 理解为*(p+i)

*p[i]是第i个字符串的首字母理解为*(*(p+i))

char c[]="hello";
char* ptr1=c; 
cout<<c<<" "<<ptr1<<" "<<*ptr1<<" "<<*(ptr1+1)<<" "<<ptr1[1]<<endl; //hello hello h e e
//char* ptr2=&c;//不可以这样 &c 并不退化为指向第一个元素的指针,而是指向整个数组的指针,
//其类型是 char (*)[6],表示指向一个包含6个 char 的数组的指针。
char** ptr2=&ptr1;//一个字符串指针的指针 
cout << ptr2 << " " << *ptr2 << " " << **ptr2 << " " << *(*ptr2+1) << " " << (*ptr2)[1] << endl;//0x70fdd8ptr1的地址 ptr1hello h e e

看这个注释 就硬记吧

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值