[C++]指针和指向数组的指针[一维数组与指针]
形如:int型 数组 a[10]
1)&a[0] 地址常量;地址类型:int *型 ; 存储数组a的首地址
2) a 地址常量;地址类型:int *型 ; 存储数组a的首地址 即 a与 &a[0]等价
形如:指向一维数组的指针变量
如有定义: int a[10],*p;
①p = &a[6]; //表示将a[6]的地址赋给指针变量p
②p = a
p = &a[0] //均表示将数组a的地址(or a[0]的地址)赋给指针变量p
形如:指针可进行的运算
预先定义:指针变量p,数组a[10],正整数n;
1)指针 ± 数值 【实际值:p±n*size | 其中size指p的基类型所占用的存储字节数】
p - n : 指向a[i]前面的第n个元素;
※若定义:*p = a;
则:
*(a+i) 或者 a[i]
*(p+i) 或者 p[i] //四者意义:访问数组a中的第i个元素
本质与区别:
1.p与a数据类型均为int *型;
2.p是指针变量;a是指针常量(指向不可改变)
2)指针 -指针
前提:指向相同类型的指针变量可以相减
结果:两指针所指向的地址之间数据的个数(单位:数据类型,并非字节数)
Eg:
int *px,*py,n,a[5];
px = &a[1];
py = &a[4];
n = py - px; //结果:n = 3
n = px - py; //结果: n = -3
3)指针的比较运算(<,>,==,!=,<=,>=)
结果:1 or 0
Eg:px == py //两地址相同?0:1
px < py //px<py?0:1
px==NULL //px为空指针?0:1
即 真为0;假为1
--------------------------------------------------------------------------------------------------------
元素的地址: 元素的值:
a+i 数组名法 *(a+i) 数组名法
p+i 指针法 *(p+i) 指针法
&a[i] 下标法 a[i] 下标法
&p[i]下标法 p[i] 下标法
---------------------------------------------------------------------------------------------------------
典型例子1:分别求数组前十个元素和后十个元素之和
#include<iostream>
int fsum(int *array,int n) { //通用的求和函数
int i,s = 0;
for(i = 0;i<n;i++)
s += array[i]
return (s);
}
void main(void){
int a[15] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int shead ,stail;
shead = fsum(&a[0],10); //or fsum(a,10)
stail = fsum(&a[5],10) ; //or fsum(a+5,10)
---------------------------------------------------------------------------------------------------------
典型例子2:比较两字符串的大小:
int my_strcmp(char *s,char *p){
for(;*s==*p;s++;p++)
if(*s=='\0') reutrn (0); //如果都比较到最后一个字符了,那么二者相等
}
[C++]指针和指向数组的指针[一维数组与指针]的更多相关文章
- PHP开发小技巧③—实现多维数组转化为一维数组
在平常的项目开发中我们多会用到让多维数组转化为一维数组的情况,但是很多Programmer不会将其进行转化,也有些没有想到很好的算法然后经过乱起八糟的运算方式将其勉强转化好,但是所写的程序代码冗余非常 ...
- 二维数组转化为一维数组 contact 与apply 的结合
将多维数组(尤其是二维数组)转化为一维数组是业务开发中的常用逻辑,除了使用朴素的循环转换以外,我们还可以利用Javascript的语言特性实现更为简洁优雅的转换.本文将从朴素的循环转换开始,逐一介绍三 ...
- [Swift]多维数组的表示和存储:N维数组映射到一维数组(一一对应)!
数组:有序的元素序列. 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数字编号称为下标.数组 ...
- Python数组操作将一维数组变成二维数组
一.问题 我们在进行数组操作的时候会遇到将一个低维的数组变成一个高维的素数组 二.解决 第一种方法基本思路就是将低维数组进行等长的循环,在第一次为零的情况下,需要添加一个[]数组,原因是将它的基本框架 ...
- 题目要求:传入数组 内容为[['lisi','男','27'],['wangwu','男',18],['zhaoliu','男','30']],将此二维数组转化为一维数组,创建自定义函数完成
//自定义函数 function getOne($arr){ $str = ''; //定义空的字符串,用来接收值 foreach ($arr as $key=>$value){ //循环遍历数 ...
- 将二维数组转换成一维数组(基于reduce)
reduce:不改变原数组,返回一个新的数组.就是遍历数组元素,从头开始,依次往下,第一个参数是上一次的返回值,第二个参数是下一个数组元素,首次的时候第一个和第二个参数分别是 array[0], a ...
- php数组去重(一维数组)
<?php $arr = ['1', '1', 'PHP', 'PHP', 2, 3]; print_r($arr); echo "<br>"; print_r( ...
- php二维数组转成一维数组
$arr是需要转换的数组集合 array_reduce($arr, 'array_merge', array());
- python算法:嵌套数组转变成一维数组
比如,输入是:[2, 1, [3, [4, 5], 6], 7, [8]] 则,输出是:[2, 1, 3, 4, 5, 6, 7, 8] def list_flatten(l, a=None): a ...
- C++入门经典-例6.10-将多维数组转换成一维数组
1:代码如下: // 6.10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> usin ...
随机推荐
- jquery html 獲取或設置
jquery提供操作html元素的屬性和內容的強大方法. DOM就是獨立于平台和語言的界面,允許程序和腳本動態訪問和改變DOM的內容,結構和樣式. 獲取內容:text(),html(),val(),a ...
- spring cloud实战与思考(一) spring config全局配置方案设计
“spring cloud”的配置中心工具“spring cloud config”提供了分布式系统配置文件集中管理解决方案.该工具功能强大,实现也很简单.网上可以搜索到很多开发教程和用例.本文并不是 ...
- 51nod蜥蜴与地下室(1498)(暴力搜索)
题意:一个数组s,再给你a,b值,除了s1和sn外,你可以攻击其他元素,你对这个元素的伤害为a,那么他两边的元素会受到b的牵连伤害,si-a,si-1-b,si+1-b: 求最小的次数,使得这个数组的 ...
- BZOJ2069 POI2004ZAW(最短路)
显然这样的路径一定是选择了与1相邻的不同的两点分别作为起点和终点(除1本身).如果能将每一组起点终点都计算到就可以得出最优解了.暴力显然不行.注意到我们每次求出的是单源最短路径,考虑如何充分利用信息. ...
- zxing生成二维码设置边框颜色
真是研究了很久很久,满满的泪啊 zxing生成二维码,默认是可以增加空白边框的,但是并没有可以设置边框颜色的属性. 其中增加空白边框的属性的一句话是: Map hints = new HashMap( ...
- Java11实战:模块化的 Netty RPC 服务项目
Java11实战:模块化的 Netty RPC 服务项目 作者:枫叶lhz链接:https://www.jianshu.com/p/19b81178d8c1來源:简书简书著作权归作者所有,任何形式的转 ...
- 集成Android免费语音合成功能(在线、离线、离在线融合)
集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离线)集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离在线融合) 转眼间,大半年没 ...
- 自学Linux Shell18.2-sed编辑器高级特性
点击返回 自学Linux命令行与Shell脚本之路 18.2-sed编辑器高级特性 linux世界中最广泛使用的两个命令行编辑器: sed gawk 1. sed小结 命令格式: 1 sed [opt ...
- 自学Python4.6-迭代器
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- 洛谷 P2491消防 解题报告
P2491 消防 题目描述 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000). 这个国家的人对火焰有超越宇宙的热情,所以这个 ...