一个Demo说明白指针、地址、值得关系
来源:互联网 发布:我与网络演讲稿2000字 编辑:程序博客网 时间:2024/05/19 15:44
先上Demo的代码:
void main(){ char c = 'a'; char *p = &c; //&取地址 int a = 1; int *ap = &a; printf("&c=%d\n",&c); printf("*p=%c\n",*p); printf("p=%d\n",p); printf("p+1=%d\n",p+1); printf("ap=%d\n",ap); printf("ap+1=%d\n",ap+1);}
代码详解:
第一行:定义了一个char类型的变量c,并赋值为a
第二行:定义了一个char类型的指针p,并取变量c的地址赋值给指针p(这样指针p所指向的值就是变量c)
第三行:定义了一个int类型的变量a ,并赋值为1
第四行:定义了一个int类型的指针ap,并将变量a的地址赋值给这个指针(注意int类型的指针只能指向int类型的变量,所以这里不能写成 int * ap = &c 这是错误的)
下面我们分别打印出来,看看这几个值是什么:
首先是&c 这个是c变量的地址,结果是数字,也就是在内存中的位置,他的值和指针p的值是一致的,说明p指针指向的也是这个地址
然后是*p 这样*在前的取值,是取p指针指向的那个变量的值,也就是c中存的值a
下面是指针的加法操作,两相对比,我们可以发现指针的加法操作和指针所指向的类型是有关系的。+1表示指向内存中的下一个位置,如果是char,那么下一个位置就是地址上+1就可以,因为char就占一个字节,但是如果是int,占4个字节,下一个位置,那么久需要地址上+4才指向下一个位置。
0 0
- 一个Demo说明白指针、地址、值得关系
- android 值得收藏的demo 以及 地址
- 指针剖析,地址关系 (一)
- 指针*p与地址之间的关系
- 变量指针和地址之间的关系
- 从关键字说Java对象、引用、指针、堆栈的关系
- 以一个最简单的例子把OO的JavaScript说明白
- 以一个最简单的例子把OO的JavaScript说明白
- 用一个最简单的例子把OO的JavaScript说明白
- 以一个最简单的例子把OO的JavaScript说明白
- 以一个最简单的例子把OO的JavaScript说明白
- 以一个最简单的例子把OO的JavaScript说明白
- 以一个最简单的例子把OO的JavaScript说明白
- 以一个最简单的例子把OO的JavaScript说明白[转]
- 以一个最简单的例子把OO的JavaScript说明白
- 一句话说明白lamda表达式
- 一句话说明白lamda表达式
- 一句话说明白lamda表达式
- ACM算法列表
- CodeForces 14D Two Paths
- plist --- 's read and write
- ubntu获取android源码的方法
- mongodb学习系列之二
- 一个Demo说明白指针、地址、值得关系
- Problem C: 指针引出奇数因子
- android 动画-Tween Animation(一)动画体系简介,涉及到的核心类、核心接口讲解(下)
- OpenJDK垃圾收集器与内存分配策略
- 多线程之线程的状态
- 2016.1.20个人总结
- 反应器(Reactor)模式
- Matlab编程学习:用内建函数代替for循环
- LOMO特征