数组和指针的区别(a和&a以及&a[0]的区别)
来源:互联网 发布:检测噪音的软件 编辑:程序博客网 时间:2024/05/16 13:42
一、一维数组
*这里记住数组的首地址和数组首元素的地址是不一样的,虽然他们的值是一样的,但是代表的意思不一样;
*数组 int a[5];
* a是数组的共五个整形数据的内存的名字,是一块连续的地址的名字;
* a代表首元素的地址同&a[0]是一样的;所以a+1代表的是第二个元素的地址
* &a则是整个内存空间的地址,所以&a+1代表的是数组之后的另一块数组的首地址,已经超过数组a了,则*(&a + 1)越界
* a 、 &a 、 &a[0]的值是一样的,但是代表的意义不同
* a 和 &a[0]都是代表首元素的地址,+1 之后都是a[1]的地址,所以*(a+1)表示a[1]的值
* &a 则代表整个数组的内存地址,+1 之后越界到数组外面去了
例子:
#include<iostream>
using namespace std;
int main()
{
int a[5] = {1, 2, 3, 4, 5};
int *ptr = (int *)(&a + 1);
cout << *(a + 1) << " " << *(ptr-1) << endl;
system("pause");
return 0;
*这里记住数组的首地址和数组首元素的地址是不一样的,虽然他们的值是一样的,但是代表的意思不一样;
*数组 int a[5];
* a是数组的共五个整形数据的内存的名字,是一块连续的地址的名字;
* a代表首元素的地址同&a[0]是一样的;所以a+1代表的是第二个元素的地址
* &a则是整个内存空间的地址,所以&a+1代表的是数组之后的另一块数组的首地址,已经超过数组a了,则*(&a + 1)越界
* a 、 &a 、 &a[0]的值是一样的,但是代表的意义不同
* a 和 &a[0]都是代表首元素的地址,+1 之后都是a[1]的地址,所以*(a+1)表示a[1]的值
* &a 则代表整个数组的内存地址,+1 之后越界到数组外面去了
例子:
#include<iostream>
using namespace std;
int main()
{
int a[5] = {1, 2, 3, 4, 5};
int *ptr = (int *)(&a + 1);
cout << *(a + 1) << " " << *(ptr-1) << endl;
system("pause");
return 0;
}
二、二维数组
int a[3][2] = {1,2,3,4,5,6};
cout << *(*(&a[0] + 1)) << " " << *(*(&a[0] + 1) + 1) << endl;
//a[0]是第一组元素,算一个元素,也是地址,所以&a[0]是一个二重指针;那么后面就需要两重间访
//又因为数组中a 和 &a[0]意思相同,都是第一个元素的地址(不同于&a是整个数组的首地址)
//所以上面还可以写成*(*(a+1)+1)的形式都是表示的a[1][1];
cout << *(*(a+1)+1) << endl;
- 顶
0 0
- 数组和指针的区别(a和&a以及&a[0]的区别)
- 数组和指针的区别(a和&a以及&a[0]的区别)
- 数组a[],a和&a的区别
- a和&a的区别以及数组和指针的用法
- char *a 和char a[] 的区别(指针和数组的区别)
- char *a 和char a[] 的区别(指针和数组的区别)
- char *a 和char a[] 的区别(指针和数组的区别)
- char *a 和char a[] 的区别(指针和数组的区别)
- char *a 和char a[] 的区别(指针和数组的区别)
- char *a 和char a[] 的区别(指针和数组的区别)
- char *a 和char a[] 的区别(指针和数组的区别)
- char *a 和char a[] 的区别(指针和数组的区别)
- 数组中 &a和 &a[0],a 的区别
- 数组中 &a和 &a[0],a 的区别
- 数组名a和&a的区别
- 数组里a和&a的区别
- 数组里a和&a的区别
- 数组中a和&a的区别
- 分析iframe标签在SEO中的利与弊
- 对任意10个数字求和(2)
- AVL树原理通俗解释与例子
- 小米路由器登陆以及切换wan账户脚本
- 在MVC中跳转页面时是新开一个页面,而不是覆盖原页面
- 数组和指针的区别(a和&a以及&a[0]的区别)
- 04-树6 Complete Binary Search Tree
- Visual studio 快速定位打开文件在项目中的位置
- 微信企业版电脑版 v1.0 官方版
- 微信开发 config:invalid url domain
- java笔记
- 生产者-消费者问题
- 关于外部时钟晶振频率选择
- Java实验3 类的多态性和接口