int a[3];中a+1与&a+1差别 -- C
int a[3];
a 和 &a 的地址一样的。
a+1 == a + 1*sizeof(int);跳跃是一个数组元素大小
&a+1 == a + 3*sizeof(int);跳跃是整个数组大小
#include <stdio.h> int
main()
{
char * a[] = {"hello","the","world"};
char ** pa = a;
pa ++; /* 获取数组中第二个元素 */
printf("*pa = %s\n",*pa);
printf("*(a+1) = %s\n",*(a+1)); int b[] = {1,2,3};
int * pb = b; /* 获取数组中最后一个元素 */
printf("*((int *)(&b +1)-1) = %d\n",*((int *)(&b +1)-1));
printf("*((int *)((&b +1)-1) = %d\n",*((int *)((&b +1)-1))); printf("*((char **)(&a+1)-1) = %s\n",*((char **)(&a+1)-1)); /* 地址一样 */
printf("b = 0x%0X\n",b);
printf("&b = 0x%0X\n",&b);
}
/*
[root@localhost test_class]# ./a.out
*pa = the
*(a+1) = the
*((int *)(&b +1)-1) = 3
*((int *)((&b +1)-1) = 1
*((char **)(&a+1)-1) = world
b = 0xBFC556B0
&b = 0xBFC556B0
*/
int a[3];中a+1与&a+1差别 -- C的更多相关文章
- 75 int类型数组中除了一个数出现一次或两次以外,其他数都出现三次,求这个数。[2行核心代码]
[本文链接] http://www.cnblogs.com/hellogiser/p/single-number-of-array-with-other-three-times.html [题目] i ...
- MyBatis mapper文件中的变量引用方式#{}与${}的差别
MyBatis mapper文件中的变量引用方式#{}与${}的差别 #{},和 ${}传参的区别如下:使用#传入参数是,sql语句解析是会加上"",当成字符串来解析,这样相比于$ ...
- Javascript 中 的 for ... in 和 for ... of 差别
Javascript 中 的 for ... in 和 for ... of 差别 for ... in 是历史问题,在循环数据时会可以出现奇怪的问题,比如把数据的属性循环出来. for ... of ...
- ][mybatis]MyBatis mapper文件中的变量引用方式#{}与${}的差别
转自https://blog.csdn.net/szwangdf/article/details/26714603 MyBatis mapper文件中的变量引用方式#{}与${}的差别 默认情况下,使 ...
- 数组溢界地址的正确使用: 即 int a[6] 中的 a[-1] 和 a[6] 正确使用
正如大家所知道的那样: 数组 int a[6] , 编译器阅读到这句数组定义,会为分配6个int 类型的地址:a[0] a[1] a[2] a[3] a[4] a[5].我们 能够正 ...
- int型整数中2进制中含有1的个数。
int func(x) { int countx =0; while(x) { countx ++; x = x&(x-1); } return countx; } 解释下思路: 1.任何一个 ...
- int('x', base)中的base参数
>>> int('12', 16) 16表示'12'就是16进制数,int()要将这个16进制数转化成10进制.
- Java中string 创建对象时 “”和null的差别
null和""的差别 问题一: null和""的差别 String s=null; string.trim()就会抛出为空的exception String s ...
- [JSP]JSP中include指令和include动作的差别
include指令是编译阶段的指令,即include所包括的文件的内容是编译的时候插入到JSP文件里,JSP引擎在推断JSP页面未被改动,否则视为已被改动. 因为被包括的文件是在编译时才插入的.因此假 ...
随机推荐
- 非常好!!!---bash转义序列笔记---打印语句printf用法【转】
转自:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=2318684&fromuid=23571134 本教程由 惟吾无为 ...
- Linux的日志错误级别
讯息等级 系统将讯息分为七个主要的等级,依序是由不重要排列到重要讯息等级: info:仅是一些基本的讯息说明而已: notice:比 info 还需要被注意到的一些信息内容: warning 或 wa ...
- Usage of API documented as @since 1.6+
报错:即方法是Java1.6才开始有的 File ->Project Structure->Project Settings -> Modules -> Language Le ...
- CF978C Letters【前缀和+二分查找/几房几号】
[链接]:CF978C [分析]:在前缀和数组种二分找到>=询问数的位置,根据位置就好操作了 [代码]: #include<bits/stdc++.h> using namespac ...
- POJ 3620 Avoid The Lakes【DFS找联通块】
Avoid The Lakes Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6826 Accepted: 3637 D ...
- poj3693(后缀数组)
poj3693 题意 给出一个串,求重复次数最多的连续重复子串,输出字典序最小的. 分析 论文 例8(P21). Sparse-Table算法预处理出任意两个后缀串的LCP. code #includ ...
- POJ 2763 Housewife Wind(树链剖分)(线段树单点修改)
Housewife Wind Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 10378 Accepted: 2886 D ...
- 洛谷 U19159 采摘毒瘤
题目背景 Salamander见到路边有如此多的毒瘤,于是见猎心喜,从家里拿来了一个大袋子,准备将一些毒瘤带回家. 题目描述 路边共有nn 种不同的毒瘤,第i 种毒瘤有k_i 个,每个需要占据d_i ...
- linux 自动删除n天前文件
现在系统每天生成一个日期文件夹,并压缩上传到ftp服务器,造成目录下文件太多,所以决定写个定时删除文件的任务 写脚本文件 find /home/data -mtime +90 -name " ...
- Linux下将MySQL服务添加到服务器的系统服务中
Linux下将MySQL服务添加到服务器的系统服务中 Linux环境下将MySQL服务添加到服务器的系统服务中 1.了解MySQL程序路径 MySQL数据目录: /home/mysql/dataMyS ...