取数组首地址的问题:
来源:互联网 发布:淘宝网支付宝登陆 编辑:程序博客网 时间:2024/05/16 14:06
数组第一个元素的地址和整个数组的首地址到底有什么区别呢?
例如:
1.
int main(int argc, char **argv)
{
int a[2] = {7,8 };
cout << a << endl; //取数组第一个元素的地址
cout << &a << endl; // 取整个数组的首地址
cout << a+1 << endl; // 数组第一个元素的地址加1(即sizeof(int ))
cout << &a+1 << endl; // 数组首地址 加1 (即siziof(int)*2)
system("pause");
return 0;
}
从输出结果可以看出,a代表数组第一个元素的地址,&a代表整个数组的首地址
a+1代表第一个元素地址加1,也就是第二个元素的地址
&a+1代表整个数组地址加1,也就是整个数组的最后一个元素的地址指向的下一个地址。
2.
如果数组是二维数组,意思可能稍微有点复杂,具体看如下代码注释:
int main(int argc, char **argv)
{
int a[2][2] = {6,7,8,9 };
cout << a << endl; // a 代表第1个一维数组的第一个元素的地址
cout << &a << endl; // &a代表整个二维数组的首地址。
cout << a+1 << endl; // a+1代表第一个一维数组的第二个元素的地址。
cout << &a+1 << endl; // &a+1代表整个二维数组的最后一个元素指向的下一个地址。
system("pause");
return 0;
}
例如:
1.
int main(int argc, char **argv)
{
int a[2] = {7,8 };
cout << a << endl; //取数组第一个元素的地址
cout << &a << endl; // 取整个数组的首地址
cout << a+1 << endl; // 数组第一个元素的地址加1(即sizeof(int ))
cout << &a+1 << endl; // 数组首地址 加1 (即siziof(int)*2)
system("pause");
return 0;
}
从输出结果可以看出,a代表数组第一个元素的地址,&a代表整个数组的首地址
a+1代表第一个元素地址加1,也就是第二个元素的地址
&a+1代表整个数组地址加1,也就是整个数组的最后一个元素的地址指向的下一个地址。
2.
如果数组是二维数组,意思可能稍微有点复杂,具体看如下代码注释:
int main(int argc, char **argv)
{
int a[2][2] = {6,7,8,9 };
cout << a << endl; // a 代表第1个一维数组的第一个元素的地址
cout << &a << endl; // &a代表整个二维数组的首地址。
cout << a+1 << endl; // a+1代表第一个一维数组的第二个元素的地址。
cout << &a+1 << endl; // &a+1代表整个二维数组的最后一个元素指向的下一个地址。
system("pause");
return 0;
}
- 取数组首地址的问题:
- 对数组取地址的一点问题
- 数组名取地址带来的问题
- 数组首地址与数组名取地址的区别
- 数组首地址与数组名取地址的区别
- 数组首地址与数组名取地址的区别
- C++数组取地址问题!
- C++数组取地址问题!
- 数组首地址取地址
- 取多维数组首地址的方法
- 数组名&数组名取地址&数组首元素取地址的区别
- 关于对数组名取地址的问题
- 数组名、取数组首地址的区别
- 数组的首地址与数组的首地址取地址
- 数组的首地址,数组名取地址,地址的强制转换为int
- 数组名、数组名取地址以及作为函数传递带来的问题
- (九)C语言数组的取值,取地址。
- 关于取数组地址
- Smarty 变量
- 常用正则表达式
- c++引用计数实现
- 三种东西永远不要放到数据库里
- 数组和数组名的关系
- 取数组首地址的问题:
- 存储过程使用shell脚本执行sql文件
- 【PHP分页】Zebra_Pagination - 通用分页类
- 强大的HTTP包装开源项目ASIHTTPRequest介绍
- 股指期货交易系统简介架构
- 内存管理分析
- linux内核中断和时钟初步整理及其问题解答
- WPF窗体程序中实现响应系统热键所用到的键值定义
- 微软在c++ 11中增加的新规范