几种不同类型数组与指针的关系

1)整形数组与指针
int a[5]={1,2,3,4,5};
int *p=a;//其实指针p也相当于是数组名,p[i]=a[i];指向数组首地址,即a[0]地址;
cout<<p;即输出数组a的首地址;(与cout<<&a[0]等价 )
cout<<p;即输出a[0];
!!!!cout<<&p;输出的是指针p的地址;
//指针与数组类似,数组可以表达为是一种特殊类型的指针。
2)字符型数组与指针;
(1)单字符 char型
char型变量对应单字符 ,正常情况下:
char a[]=“yinjun”;//a为一个字符型数组;char a[6]="yinjun"与之等价。
char * p=a;p指向‘y’,储存y的地址;但是cout<<p或者cout<<&p[0];输出的却不是地址,而是整个字符串;

cout<< * p或者p[0]都输出y;同样cout<<&p输出的是p的地址;
特殊情况:
直接写 char *p=”yinjun";与上述p含义相同

(2)字符串 string 型
string a=“yinjun”;
string *p=&a此时cout<<p或者&p[0];输出字符串首地址;//p指向字符串。
而cout<<*p时,输出整个字符串;
在这里插入图片描述

               cout<<p[0]时,也输出字符串,但cout<<p[1]时,会出现乱码。

欢迎萌新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值