支付宝sdk怎么使用:我对数组地址有点不懂 请大家教教我

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 10:46:21
#include<iostream>
using namespace std;
void main()
{
int a[3]={1,2,3};
char b[4]={'a','b','c'};
cout<<b<<endl<<a<<endl;
}
以上的程序为什么b是输出 abc
而a是输出地址?
同样是数组为什么输出类行不同呢?
数组名不是表示数组的首地址吗?

呵呵,这个你应该看iostram库里面对<<这个operator的重载代码。
你b 是char[],在调用operator<<时,退化为char *,而operator<< 处理char *就是当字符串输出么。
同理a就变成了int *,operator<<对int *的策略,应该是输出指针指向的地址。

b和a 都是数组的首地址,但是b数组的首地址就是abc,字符串可以整体输出呀,而且数字数组就不行,所以a输出的就是一个地址.例:a=00111010,而b=abc