a &a &a[0]之间的区别和联系
数组中,a为数组的首地址,&a[0]为数组第一个元素的地址。
所以 a == &a[0]
但是,&a又是什么东西呢?
我们来做下面的代码测试:
#include <stdio.h> void main(void){ int a[] = {}; printf("a---------->%p\n", a);
printf("&a--------->%p\n", &a);
printf("&a[0]------>%p\n", &a[]); printf("\nafter changed\n\n");
printf("a+1-------->%p\n", a + 1);
printf("&a+1------->%p\n", &a + );
printf("&a[0]+1---->%p\n", &a[]+); }
打印出的结果为:
a---------->004DF870
&a--------->004DF870
&a[]------>004DF870 after changed a+-------->004DF874//值增加了4,为一个int类型长度,则此地址为数组的第二个元素地址
&a+------->004DF884//值增加了20,为五个int类型长度,则此地址为数组结束后的下一个元素地址
&a[]+---->004DF874//值增加了4,同a+1
虽然结果中 a == &a == &a[0] ,但是这三个值的意义不一样
结论:
- a 表示数组元素的首地址,同时也可做为数组的指针使用
- &a 表示整个数组的首地址
- &a[0] 表示数组第一个元素的地址
a &a &a[0]之间的区别和联系的更多相关文章
- 深入理解 '0' "0" '\0' 0 之间的区别
看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了‘\0’ ,‘0’, “0” 之间的区别了.困惑和快乐与你分 ...
- 深入理解c语言——‘\0’ ,‘0’, “0” ,0之间的区别
看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了‘\0’ ,‘0’, “0” 之间的区别了.困惑和快乐与你分 ...
- display:none;visibility:hidden;opacity:0;之间的区别
什么是回流 当render tree中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建.这就称为回流(reflow).每个页面至少需要一次回流,就是在页面第一次加载的时候,这时候是 ...
- Android:finish()与System.exit(0)之间的区别
finish()与System.exit(0)都是用来退出.但是两者还是有一定的区别: finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没 ...
- c语言‘\0’ ,‘0’, “0” ,0之间的区别
首先比较一下‘\0’和‘0’的区别.有一个共同点就是它们都是字符,在c语言中,字符是按其所对应的ASCII码来存储的,一个字符占一个字节.请翻开你的ASCII字符集表吧,一般在你的C语言教材的附录上, ...
- Tp3.2 和 Tp5.0之间的区别
5.0版本和之前版本的差异较大,本篇对熟悉3.2版本的用户给出了一些5.0的主要区别. URL和路由 5.0的URL访问不再支持普通URL模式,路由也不支持正则路由定义,而是全部改为规则路由配合变量规 ...
- 【转载】python3.0与2.x之间的区别
python3.0与2.x之间的区别: 1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好 ...
- python3.0与2.x之间的区别
python3.0与2.x之间的区别: 1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好 ...
- [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别
要学习及应用好Ext框架,必须需要理解Html DOM.Ext Element及Component三者之间的区别. 每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的DOM ...
随机推荐
- Android:No implementation found for native(转)
解决方法: 1.检查native c code的定义: JNIEXPORT void Java_com_example_something_MyClass_getMyString(JNIEnv * e ...
- EMQ 学习---MQTT消息QoS
MQTT发布消息QoS保证不是端到端的,是客户端与服务器之间的.订阅者收到MQTT消息的QoS级别,最终取决于发布消息的QoS和主题订阅的QoS. 客户端连接: 客户端完成TCP三次握手之后,还需要发 ...
- 求子数组的最大和要求O(n)
//求子数组的最大和 //输入一个整形数组.有整数也有负数,数组中连续一个或多个子数组,每一个子数组都有一个和,求全部子数组的和的最大值,要求时间复杂度O(n) #include<iostrea ...
- java中加密解密工具类
在工作中经常遇到需要加密.解密的场景.例如用户的手机号等信息,在保存到数据库的过程中,需要对数据进行加密.取出时进行解密. public class DEStool { private String ...
- Objective-C中的基本数据类型
// // main.m // 01.基本数据类型 // // Created by zhangqs008 on 14-2-13. // Copyright (c) 2014年 zhangqs008. ...
- 源码分析HotSpot GC过程(二):DefNewGeneration的GC过程
由于虚拟机的分代实现,虚拟机不会考虑各个内存代如何实现垃圾回收,具体的工作(对象内存的分配也是一样)由各内存代根据垃圾回收策略自行实现. DefNewGeneration的使用复制算法进行回收.复制算 ...
- cocos2d-x 之 CCProgressTimer
--绕圆心转动的进度动画 local function SpriteProgressToRadial() local leftProgress = CCProgressTimer:create(CCS ...
- jQuery元素操作1
元素操作 1.2.1 高度和宽度 $(“div”).height(); // 高度 $(“div”).width(); // 宽度 .height()方法和.css(“height”)的区别: 1. ...
- Python 内置模块函数filter reduce
1.filter()实现过滤的功能 2.reduce()对序列中元素的连续操作可以通过循环来处理 3.map()对tuple元组进行解包操作,调用时设置map()的第一个参数为None 4.使用red ...
- nginx解析漏洞
一个比较老的漏洞了,但是今天在一个交流群里大佬们有那么一个案例.就深入学习了一下其原理. Nginx当检查url最后的文件名为脚本的时候,他就会把整个程序当作脚本来执行,否则就当作非脚本执行. 正确上 ...