C++一维数组和指针的关系总结
对于数组int a[10];
a表示数组的第一个元素的地址,即&a[0];
如果使指针p,指向数组的首元素,可以进行操作:
int * p=a;
或者
int *p=&a[0];
那么p++,是指向数组中的先一个元素,即a[1];
此时*p则是a[1]中所放的值。
此时,a[i]=p[i]=*(a+i)=*(p+i)
下面举一个例子;
直接用a[i]来输出
#include<iostream>
using namespace std;
int main(){int a[10]={1,2,3,4,5,6,7,8,9,10};cout<<"Please input 10 intergers: "<<endl;int i=0;for(i=0;i<10;i++)cout<<a[i]<<" ";cout<<endl;return 0;
}
用*(a+i)来输出
#include<iostream>
using namespace std;
int main(){int a[10]={1,2,3,4,5,6,7,8,9,10};cout<<"Please input 10 intergers: "<<endl;int i=0;for(i=0;i<10;i++)cout<<*(a+i)<<" ";cout<<endl;return 0;
}
用*(p+i)来输出
#include<iostream>
using namespace std;
int main(){int a[10]={1,2,3,4,5,6,7,8,9,10};cout<<"Please input 10 intergers: "<<endl;int i=0;int * p=a;for(i=0;i<10;i++)cout<<*(p+i)<<" ";cout<<endl;return 0;
}
关于*p++
由于++和*的优先级相同,结合方向是自右而左,因此它等价于*(p++)。作用是:先得到p指向的变量的值(即*p),然后再使指向p的值加1.
#include<iostream>
using namespace std;
int main(){int a[10]={1,2,3,4,5,6,7,8,9,10};cout<<"Please input 10 intergers: "<<endl;int i=0;int * p=a;while(p<a+10){cout<<*p++<<"\t";}cout<<endl;return 0;
}
等价于
#include<iostream>
using namespace std;
int main(){int a[10]={1,2,3,4,5,6,7,8,9,10};cout<<"Please input 10 intergers: "<<endl;int i=0;int * p=a;while(p<a+10){cout<<*p<<"\t";p++;}cout<<endl;return 0;
}
*p++等价于*(p++);而*(++p)表示先使p+1,再取*p.
#include<iostream>
using namespace std;
int main(){int a[10]={1,2,3,4,5,6,7,8,9,10};cout<<"Please input 10 intergers: "<<endl;int i=0;int * p=a;while(p<a+10){cout<<*(++p)<<"\t";}cout<<endl;return 0;
}
运行上面的程序,结果将输出a[2]到a[11]的值,其中a[11]并没有定义。
转载于:https://www.cnblogs.com/zhezh/p/3773424.html
C++一维数组和指针的关系总结相关推荐
- 一维数组和指针的关系
数组名是一个指针常量,表示数组第一个元素的的起始地址. 如 int a[5]; a表示数组第一个元素a[0]的起始地址&a[0]. 一 引用数组元素的方法: ①用数组下标引用数组元素 数组a ...
- c语言数组与指针的基础知识,C语言学习笔记之数组与指针的关系
首先,大家先需知道一个关于基类型的概念 基类型:组成一个新类型的基础类型 这句话是什么意思呢?举个例子: int a[3] = {1,2,3}; 上面是由三个int类型的数组成一个新的类型也就是数组, ...
- c++ 一维数组长度_每天一点C / 一维数组和指针
哈喽,我是老吴,继续记录我的学习心得. 每天一点系列是我对微习惯的践行.现在能做到每天一点 C,将来就会有更多的每天一点系列,没人规定嵌入式软件工程师就只能学习 C 语言和折腾 Linux,不要给自己 ...
- C语言之指向一维数组的指针
int array[5] = {1, 2, 3, 4, 5}; // 定义数组 int *intptr = array; // 定义指向数组元素的指针 int (*arrayptr)[5] = &am ...
- C++中数组和指针的关系(区别)详解
C++中数组和指针的关系(区别)详解 本文转自:http://c.biancheng.net/view/1472.html 博主在阅读后将文中几个知识点提出来放在前面: 没有方括号和下标的数组名称实际 ...
- C语言-一维数组与指针
目录 1 用指针访问数组的三种方式 2 一维数组做函数的参数 2.1 方法一 2.2 方法二 3 指针自增自减运算 1 用指针访问数组的三种方式 #include <stdio.h>int ...
- int转char数组_C语言学习第22篇---数组和指针的关系剖析
数组的本质: 数组是一段连续的内存空间 数组的空间大小为sizeof(array_type)*array_size 数组名可以看做指向数组的第一个元素的常量指针(只是理解,其实是错的,参见<征服 ...
- 十一:数组和指针的关系?
1. 数组和指针的区别: 概念: 数组:数组是用于存储多个相同类型数据的集合,数组名是首元素的地址. 指针:指针相当于一个变量,但是它和普通变量不一样,它存放的是其他变量在内存中的地址,指针名指向了内 ...
- c语言memset清空指向数组的指针_C语言中数组和指针的关系
数组的数组名其实可以看作一个指针.看下例: 1. int array[10]={0,1,2,3,4,5,6,7,8,9},value; 2. value=array[0]; //也可写成: ...
最新文章
- c#百度排名点击器编写 及webser 填表.
- mysql 随机记录 newid(),order by newid() 各种数据库随机查询的方法
- Java中的低GC:使用原语而不是包装器
- 单片机中存储器扩展位地址线怎么算_51单片机CPU结构各部件的原理详细分析
- Android学习笔记之(一)开发环境搭建
- mongodb 的命令操作(转)
- Graft货币(GRFT)结点搭建
- js 按给定数组的顺序给数组排序_JavaScript中如何如何给数组以及数组对象根据value值进行排序。...
- Linux上SQL Server 2019和Ubuntu上的Docker容器
- 设计算法之分治法(补充)
- 中国人工智能趋势报告(完整版)
- 伪造邮件***,社工钓鱼,你中招了吗【一】
- 天池大数据竞赛——糖尿病遗传风险预测赛后总结(二)
- Beyond Compare的文档比较工具的设置
- A股数据日级前复权数据补全
- word2vec的pytorch实现
- Log4j2写日志的艺术
- 计算机专业术语简单释义
- 外贸推广方式有哪些,外贸推广怎么做
- TaskSnapshot保存应用画面截图快照的处理过程
热门文章
- 全球及中国云厨房(仅限外卖的餐厅)行业前景态势与投资决策建议报告2022版
- 全球及中国农业保险市场营销状况与运营价值分析报告2022版
- 中国冶金行业投资战略及未来发展形势研究报告2021版
- 跨国婚姻登记指南是怎样的一个流程呢??
- java邮箱找回密码_Spring实现简单的邮箱找回密码功能
- 粤桂粤黔协作签约-丰收节交易会·李喜贵:谋定一县一园产业园
- 济南长清区谋定特色展销中心 对话中国农民丰收节交易会
- 配置IIS服务器提供APP文件下载
- AFN中请求序列化的设置
- Java中创建对象的5种方式 -[转] http://www.codeceo.com/article/5-ways-java-create-object.html...