ap是一个指针名array是一个数组名
1. ap[-1]
负值的下标,下标引用就是间接访问表达式,只要把它转换为那种形式并对它进行求值。ap如果指向第3个元素(就是那个下标值 为2的元素),所以使用偏移量-1就是得到它的前一个元素,也就是array[1]。
2. ap[6] 反这个下标表达式转换为与其对应的间接访问表达式形式,其实就是*(ap+6)。
3. 2[array] 表示*(2+(array))

下面是测试代码,帮助理解

#include <iostream>using namespace std;int main(){int array[10];for (int i = 0; i < 10; ++i){array[i] = i;}cout << "array: ";for (int j = 0; j < 10; ++j){cout << array[j] << " ";}cout << endl;int *ap = &array[3];cout << "*ap: " << *ap << endl;cout << "ap[-1]: " << ap[-1] << endl;cout << "ap[6]: " << ap[6] << endl;cout << "*ap: " << *ap << endl;cout << "2[array]: " << 2[array] << endl;return 0;
}

运行结果:

《C和指针》——数组的奇怪形式相关推荐

  1. c语言数组如何把一串数字存入数组_C语言 指针 (三)指针数组与数组指针

    对像我一样的初学者而言,指针数组.数组指针,听名字就很容易傻傻分不清.对于数组与指针的不同,笔者已经在上一篇文章里面已经做出了相对简单的解释.那么,"指针数组"和"数组指 ...

  2. 指针数组与数组指针的区别

    指针数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组. 一维指针数组的定义形式为:"类型名 *数组标识符[数组长度]". 例如,一个一维指针数组的定义:int *p ...

  3. 【学习笔记】数组的地址分配及指针数组的使用

    对于一维数组a[i](a[i]类型不为char),a表示数组的首地址,即a=&a[0]. int a[10]; cout<<a<<endl; cout<<& ...

  4. c语言char数组和short数组的区别,详解C语言中Char型指针数组与字符数组的区别

    详解C语言中Char型指针数组与字符数组的区别 详解C语言中Char型指针数组与字符数组的区别 1.char 类型的指针数组:每个元素都指向一个字符串,指向可以改变 char *name[3] = { ...

  5. C语言数组指针和指针数组实例演示

    一.数组指针 1.简介 数组指针就是指向数组的指针. 定义方式:int (*p)[len] = NULL; 示例: #include <stdio.h> int main() {int a ...

  6. 指针数组和数组指针的区别

    对数组的定义:数组是一个固定长度的存储相同数据类型的数据结构,数组中的元素被存储在一段连续的内存空间中. 格式: 一维数组:数据类型 数组名[数字(包含了几个元素)]={元素,元素,元素,元素.... ...

  7. 使用指针数组+申请动态内存实现英文单词排序

    在实现这一目标前我们首先得知道什么是指针数组和动态内存 1.指针数组 在C语言和C++等语言中,数组元素全为指针变量的数组称为指针数组,指针数组中的元素都必须具有相同的存储类型.指向相同数据类型的指针 ...

  8. C++ 笔记(14)— 指针(指针声明、取地址、取值、new/delete、NULL指针、指针运算、指针数组、数组指针、指针传递给函数、从函数返回指针)

    1. 声明指针 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址.就像其他变量或常量一样,您必须在使用指 针存储其他变量地址之前,对其进行声明. 指针变量声明的一般形式为: type * ...

  9. 指针 数组指针 指针数组 函数指针等说明。

    指针的概念 原文地址:http://www.cnblogs.com/ggjucheng/archive/2011/12/13/2286391.html 指针是一个特殊的变量,它里面存储的数值被解释成为 ...

最新文章

  1. 助力5G行业应用扬帆启航,第二届5G毫米波产业高峰论坛圆满召开
  2. python2.7.13环境搭建
  3. NTP-Windows 2008和win7下开启网络对时方法
  4. c语言 long和short区别,5分钟读懂Android 中的toast short 和long的区别
  5. 笔记本电脑打开后不显示桌面_宝骏630打开空调开关后压缩机不工作 - 汽车空调...
  6. Linux系统rootpassword改动
  7. Docker-HealthCheck指令探测ASP.NET Core容器健康状态
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的会员管理系统
  9. 2021年最新UI/UE设计学习路线图
  10. springboot tomcat配置_Spring Boot项目如何同时支持HTTP和HTTPS协议
  11. HALCON: texture_laws用法解析
  12. 通过修改word文件,来屏蔽宏代码
  13. 彪悍榴莲姐再袭 这次一口气吃掉10斤
  14. STM32F1移植UCOSII
  15. 51单片机多种方式点亮LED
  16. 使用ActionForm的validate()进行验证
  17. MSVC创建的Qt工程图标设置
  18. [Mysql] MOD函数
  19. 反脆弱性:为什么工作越稳定,人生越脆弱?
  20. Vue组件的生命周期以及钩子函数的作用

热门文章

  1. h5键盘把页面顶走了_微信h5开发的坑
  2. Leangoo到底好在哪里?
  3. CreateJS基础 学习笔记(上)
  4. for oracle中pivot_oracle关键字pivot行转列【坑爹的三小时,动脑经真累 】 | 学步园...
  5. emlog和typecho文章采集插件 简数第三方数据采集
  6. 新款微信壁纸小程序源码 自动采集小米
  7. 计算机代码图表,微信小程序图表插件(wx-charts)实例代码
  8. php开发神器,PHP开发神器vim
  9. 新独立版抖音口红机全修复版本附视频教程
  10. 好玩的表情包机器人小程序源码_支持直接搜索仿聊天界面获取源码