该系列文章源于《深入理解C指针》的阅读与理解,由于本人的见识和知识的欠缺可能有误,还望大家批评指教。

1、指针的含义:

指针本身也是变量,与其他一般变量不同的是:指针变量中没有存储具体类型的数据,而是存储这一串16进制的值。这串值,就是内存的地址。计算机的OS运行时,管理内存过程中,为了高效管理内存,为内存进行编号,以字节为单位编号。而内存的地址存放到变量中。这样看来,指针的地址也是地址,指针变量中的值也是地址。

2、*符号的作用

(1)声明指针变量使用

(2)解指针变量,取出指针值中对应地址的值

3、&符号的作用

取变量的地址

请看例子,非常简单,但是说明的问题还是很多:

1 #include <stdio.h>
 2 
 3 int main(int argc, char *argv)
 4 {
 5     int num = 10;
 6     int *numptr;
 7     numptr = &num;
 8     printf("Address num: %p, value num: %d\n", &num, num);
 9     printf("Address numptr: %p, value numptr: %p, value *numptr: %d\n", &numptr, numptr, *numptr);
10 
11     return 0;
12 }

第一次运行结果:

Address num: 0x7fffbfa6236c, value num: 10
Address numptr: 0x7fffbfa62360, value numptr: 0x7fffbfa6236c, value *numptr: 10

第二次运行结果:

Address num: 0x7ffdbff4ff0c, value num: 10
Address numptr: 0x7ffdbff4ff00, value numptr: 0x7ffdbff4ff0c, value *numptr: 10

(1)声明一个变量num,实际在计算机中num是代表地址,而地址就更加具体了,变量名只是让人看起来更加习惯,在计算中是不存在这个num变量的,很明显可以看出两次运行的结果中同样的num,地址是不一样的,但是这不会影响这个变量名为num,就向人的名字一样,取名字时都是可以随便取的一样。

(2)虽然两次的地址不一样,但是由于使用了相同的变量名num,所以使用变量访问是得到的就是同样的值为10

(3)例中我门使用了&取地址符号,顺利得到了num的地址,两次都不一样

(4)我们观察numptr的指针变量时,发现由于有第7行代码的作用,两次运行中,numptr的值,也就是指针代表的地址与num的地址是一样的,如果我们直接使用指针变量的变量名就是得到了num的地址,如果想进一步取得num的值,就须要*numptr,这时,*符号的作用就是取指针变量值(地址)对应的值,因此得到了num的值

最新文章

  1. vmware12 ubuntu14.01桥接模式静态IP上网
  2. AX 2012 中代码控制用户可查询哪些公司的数据
  3. fiddler的使用
  4. windows7 64位安装mysql 5.7.11 zip压缩版
  5. &quot;npm ERR! Error: EPERM: operation not permitted&quot;问题解决
  6. 如何把双引号包含到echo命令的字符串中
  7. B450配置
  8. Hadoop MR Job 关于如何控制Map Task 数量
  9. 不要怂,就是GAN (生成式对抗网络) (四):训练和测试 GAN
  10. Java字符串之String与StringBuilder
  11. AJAX二级下拉联动【XML方式】
  12. 【Android 应用开发】 自定义 圆形进度条 组件
  13. RabbitMQ 使用QOS(服务质量)+Ack机制解决内存崩溃的情况
  14. 我用linux系统的采坑记
  15. 通过ffi在node.js中调用动态链接库[转]
  16. django 后端反向生成url
  17. Metasploit Framework(1)基本命令、简单使用
  18. Dynamic Programming | Set 3 (Longest Increasing Subsequence)
  19. sqli-labs(六)
  20. Hadoop---hu-hadoop1: mv: cannot stat `/home/bigdata/hadoop-2.6.0/logs/hadoop-root-datanode-hu-hadoop1.out.4&#39;: No such file or directory

热门文章

  1. Jongmah CodeForces - 1110D
  2. 笔记-爬虫-selenium常用方法
  3. Spring MVC重定向和转发
  4. Windows Server 2012 R2有哪些存储监控工具
  5. shell判断文件是否存在[转]
  6. Windows7中如何让python2和python3共存并使用pip
  7. echarts 柱状图下钻功能
  8. OpenCV_1.0安装包下载
  9. Leetcode 659.分割数组为连续子序列
  10. vue vscode 开始