《C和指针》——数组的奇怪形式
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和指针》——数组的奇怪形式相关推荐
- c语言数组如何把一串数字存入数组_C语言 指针 (三)指针数组与数组指针
对像我一样的初学者而言,指针数组.数组指针,听名字就很容易傻傻分不清.对于数组与指针的不同,笔者已经在上一篇文章里面已经做出了相对简单的解释.那么,"指针数组"和"数组指 ...
- 指针数组与数组指针的区别
指针数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组. 一维指针数组的定义形式为:"类型名 *数组标识符[数组长度]". 例如,一个一维指针数组的定义:int *p ...
- 【学习笔记】数组的地址分配及指针数组的使用
对于一维数组a[i](a[i]类型不为char),a表示数组的首地址,即a=&a[0]. int a[10]; cout<<a<<endl; cout<<& ...
- c语言char数组和short数组的区别,详解C语言中Char型指针数组与字符数组的区别
详解C语言中Char型指针数组与字符数组的区别 详解C语言中Char型指针数组与字符数组的区别 1.char 类型的指针数组:每个元素都指向一个字符串,指向可以改变 char *name[3] = { ...
- C语言数组指针和指针数组实例演示
一.数组指针 1.简介 数组指针就是指向数组的指针. 定义方式:int (*p)[len] = NULL; 示例: #include <stdio.h> int main() {int a ...
- 指针数组和数组指针的区别
对数组的定义:数组是一个固定长度的存储相同数据类型的数据结构,数组中的元素被存储在一段连续的内存空间中. 格式: 一维数组:数据类型 数组名[数字(包含了几个元素)]={元素,元素,元素,元素.... ...
- 使用指针数组+申请动态内存实现英文单词排序
在实现这一目标前我们首先得知道什么是指针数组和动态内存 1.指针数组 在C语言和C++等语言中,数组元素全为指针变量的数组称为指针数组,指针数组中的元素都必须具有相同的存储类型.指向相同数据类型的指针 ...
- C++ 笔记(14)— 指针(指针声明、取地址、取值、new/delete、NULL指针、指针运算、指针数组、数组指针、指针传递给函数、从函数返回指针)
1. 声明指针 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址.就像其他变量或常量一样,您必须在使用指 针存储其他变量地址之前,对其进行声明. 指针变量声明的一般形式为: type * ...
- 指针 数组指针 指针数组 函数指针等说明。
指针的概念 原文地址:http://www.cnblogs.com/ggjucheng/archive/2011/12/13/2286391.html 指针是一个特殊的变量,它里面存储的数值被解释成为 ...
最新文章
- 助力5G行业应用扬帆启航,第二届5G毫米波产业高峰论坛圆满召开
- python2.7.13环境搭建
- NTP-Windows 2008和win7下开启网络对时方法
- c语言 long和short区别,5分钟读懂Android 中的toast short 和long的区别
- 笔记本电脑打开后不显示桌面_宝骏630打开空调开关后压缩机不工作 - 汽车空调...
- Linux系统rootpassword改动
- Docker-HealthCheck指令探测ASP.NET Core容器健康状态
- 基于JAVA+SpringMVC+Mybatis+MYSQL的会员管理系统
- 2021年最新UI/UE设计学习路线图
- springboot tomcat配置_Spring Boot项目如何同时支持HTTP和HTTPS协议
- HALCON: texture_laws用法解析
- 通过修改word文件,来屏蔽宏代码
- 彪悍榴莲姐再袭 这次一口气吃掉10斤
- STM32F1移植UCOSII
- 51单片机多种方式点亮LED
- 使用ActionForm的validate()进行验证
- MSVC创建的Qt工程图标设置
- [Mysql] MOD函数
- 反脆弱性:为什么工作越稳定,人生越脆弱?
- Vue组件的生命周期以及钩子函数的作用
热门文章
- h5键盘把页面顶走了_微信h5开发的坑
- Leangoo到底好在哪里?
- CreateJS基础 学习笔记(上)
- for oracle中pivot_oracle关键字pivot行转列【坑爹的三小时,动脑经真累 】 | 学步园...
- emlog和typecho文章采集插件 简数第三方数据采集
- 新款微信壁纸小程序源码 自动采集小米
- 计算机代码图表,微信小程序图表插件(wx-charts)实例代码
- php开发神器,PHP开发神器vim
- 新独立版抖音口红机全修复版本附视频教程
- 好玩的表情包机器人小程序源码_支持直接搜索仿聊天界面获取源码