指针定义

1、指针的值表示的是它所指向对象的地址,指针+1表示的是下一元素的地址,按**字节**编址,而不是下一字节的地址。
2、依照数据类型而定,short占用两字节、int占用4字节、double占用8字节。
3、地址的表示方式依赖于计算机的内部硬件。
[上一讲](https://www.cnblogs.com/jiaqinbi/p/11967784.html)的数组其实就是变相的在使用指针,数组名就是就是数组元素的首地址,如rain == &rain[0][0];

指针用法|数组与指针的关系

1、指针前面加*运算符可以得到指针所指向对象的值,取址符&表示对象地址,如下所示
int array[2] = {1, 2};
printf("数组第一个元素地址两种表示方法是否相同:%d\n", &array[1] == array); //1;
printf("指针表示法:数组第一个元素数据:%d \t 数组第二个元素数据:%d \n", *(array), *(array+1));
printf("数组表示法: 数组第一个元素数据:%d \t 数组第二个元素数据:%d \n", array[0], array[1]);
2、指针本身也有自己的地址,array指的是数组第一个元素的地址,而&array指的是存放array首地址值的地址,因此array与&array虽然都是地址,但并不相同。
3、在array数组中,array+1表示array数组的首地址加上1个int大小,其与array++等价,指向数组的下一元素的地址。递减类似
4、同一数组中指针求差表示的是两元素之间的距离(以类型大小为单元)。

注意

1、*创建一个指针时,系统只分配了储存指针本身的内存,并未分配储存数据的内存。因此,在使用指针之前,必须先用以分配的地址初始化它!*
2、如果创建的数组数据要求不可被更改,则可使用const关键字,将创建的数组视为常量无法更改。关于更深入的理解请参考
3、关于更详细的const解释请看下图







最新文章

  1. JQuery效果-淡入淡出、滑动、动画
  2. 如何使用eclipse打开已有工程
  3. Ubuntu彻底删除MySQL然后重装MySQL
  4. winserver2008 R2 64位 企业版 , IIS 配置运行 asp+access 网站
  5. 白话LINQ系列1---什么是LINQ?
  6. Struts2之Action
  7. CSS 清除浮动的四种方法
  8. Tengine安装配置
  9. hdu 5264 pog loves szh I 水题
  10. [Gauss]POJ2947 Widget Factory
  11. IE下的firebug调试利器
  12. 会场安排问题--nyoj题目14
  13. HUSTOJ 2796 && SPOJ1811
  14. [LeetCode] Judge Route Circle 判断路线绕圈
  15. AppBoxFuture(四). 随需而变-Online Schema Change
  16. JS内存管理
  17. grep -A -B -C 显示抓取的前后几行参数
  18. 八、自定义starter
  19. 关于c++类的一些知识的总结
  20. 计算从ios照片库中选取的图片文件大小

热门文章

  1. 监控MySQL服务及httpd服务
  2. js 实现对象的混合与克隆效果,带完整版解析代码[helpers.js]
  3. 桌面上的Flutter:Electron又多了个对手
  4. Clickhouse 时区转换
  5. Simple Math Problems
  6. Codeforce-Ozon Tech Challenge 2020-D. Kuroni and the Celebration(交互题+DFS)
  7. 关于SQL Server中存储过程在C#中调用的简单示例
  8. Tomcat Ghostcat - AJP协议漏洞DEBUG
  9. inode block 软硬链接
  10. spring内嵌jetty容器,实现main方法启动web项目