(一)引入:简单介绍一下整型变量,指针,引用符和解引用符

定义一个整型变量a:    int a;

如果使用引用符号&,&a则是整型变量a的地址,也就是一个整型指针。

定义一个整型指针b: int *b;b=&a;(这里把变量a的地址,也就是指针&a赋给了指针b)

如果对一个指针使用解引用符号*,如*b,便表示整型指针b存储的地址所指向的整型变量。

(二)问题:介绍笔者遇到的问题

虽然很多时候,我们可以把整型指针的解引用当做整型变量来使用,但是,整型变量与整型指针的解引用在使用上还是有差别的。

下面是一个例子,分别使用整型变量和整型指针的解引用使得这个变量+1;

同样开始的时候赋予变量0值,直接对变量本身自增成功了。

但是拿变量的指针的解引用来自增,结果变量并没有改变。

为什么呢?

笔者做了一个实验:

把代码中的指针的整型指针的解引用加上括号后再自增,结果自增成功了。

经过更多的实验,得出结论:

c中,(起码codeblocks中),*和++运算符同时存在时,后者比前者优先级更高,电脑会把*b++解读成*(b++),即把b存的地址+1,再解应用,实际上解引用得到的不是本来指针所指的整型变量。

(三)总结:

在使用整型变量的指针时,(其实不止是对整型变量),要注意运算符的优先级。解引用时要注意解引用的指针是否发生了变化。

c语言的整型指针解引用与整型变量的区别相关推荐

  1. C语言 指针数组-字符指针数组整型指针数组 char*s[3] int*a[5] 数组指针int(*p)[4]

    基本介绍 1.指针数组:由n个指向整型元素的指针而组成,里面存放指针 Int *ptr[3]; 2.地址: ptr[i]:元素地址 &ptr[i]:指针地址 图示 代码: 内存布局: 代码 # ...

  2. c语言char数组和short数组的区别,详解C语言中Char型指针数组与字符数组的区别

    详解C语言中Char型指针数组与字符数组的区别 详解C语言中Char型指针数组与字符数组的区别 1.char 类型的指针数组:每个元素都指向一个字符串,指向可以改变 char *name[3] = { ...

  3. C语言指针-字符指针整型指针char*s int*a

    案例代码 #include<stdio.h> #include<stdlib.h> #include<string.h> int main() {//字符指针cha ...

  4. C语言一维/二维数组解引用难理解点以及一道难题

    C语言指针相关的坑爹题 先来一点简单的 求下面各代码打印结果(32位环境): int a[3][4] = {0}; printf("%d\n",sizeof(a)); printf ...

  5. C语言的整型溢出问题

    整型溢出有点老生常谈了,bla, bla, bla- 但似乎没有引起多少人的重视.整型溢出会有可能导致缓冲区溢出,缓冲区溢出会导致各种黑客攻击,比如最近OpenSSL的heartbleed事件,就是一 ...

  6. c语言整形符号位_C语言中整型无符号二进制数的表示问题

    龙源期刊网 http://www.qikan.com.cn C 语言中整型无符号二进制数的表示问题 作者:马红旭 来源:<电子技术与软件工程> 2015 年第 20 期 摘 要 文章解决的 ...

  7. c语言中长整型的作用,C语言,整形和长整型都占四个字节?

    C语言中,整型常量和长整型常量,有什么区别? 整型常量和长整型常量(包括有符号的和无符号的),为什么占用字节数和一.指代不同 整型常量:是通常的整数,包括正整数.负整数和0,其数据类型显然是整型. 长 ...

  8. C语言输出长长整型错误,c语言长整型定义

    我用long int怎么不行呢 基本定义形式为: long var_name = INIT_VALUE; 一. 长整型在C语言中类型关键字为long. 定义时,var_name为变量名. INIT_V ...

  9. C++函数指针解引用

    声明函数的引用: int f( double ); int (* const pf)(double) = f;       // pf是指向函数f()的常量指针 int (&rf)(doubl ...

最新文章

  1. php 面试mysql,mysql中优化必读
  2. 使用函数对4*4的二维数组转置
  3. Hadoop streaming: Exception in thread main java.io.IOException: No space left on device
  4. [BUUCTF-pwn]——jarvisoj_fm
  5. IB COM Read
  6. node --- http数据上传
  7. mysql触发器 当记录的指定字段发生变化时,更新表中的另外一个字段,或者更新另外一张关联表中关联记录的字段...
  8. 状态码202_至少 10 个 HTTP 状态码
  9. 【分享】iOS功能界面漂亮的弹出框
  10. 默认参数和命名关键字参数(1)
  11. java构造器构造方法_Java构造器(构造方法/constructor)
  12. linux安装cd dev ls,linux 第一节 安装
  13. java 接口是抽象类吗_我是如何理解Java抽象类和接口的
  14. Flutter 技术介绍
  15. Nexus Android8 0系统拍照预览方向问题解决方法
  16. jspstudy启动mysql失败_JspStudy配置Jspxcms安装教程,以及数据库设置;
  17. Please refer to E:\SSM\Distributed\edu-parent\edu-dao\target\surefire-reports for the individua
  18. 安卓机器人+淘宝客介绍
  19. 分享关于网站跳出率需要控制在多少
  20. android 光晕动画,充电动画软件下载

热门文章

  1. 独家对话许诗军:数字化转型,最基本的是不去拒绝 |数字价值观察室(下)...
  2. LM358制作简易电平灯
  3. js-xlsx js处理excel 通过sheetJSON生成Excel文件
  4. 【Android】四大组件之 ContentProvider
  5. Python获取当前时间的上一年,上一月,上一日
  6. Vxworks 学习(一)介绍
  7. [python]python实现文件夹压缩成zip包
  8. android使用属性动画代替补间动画
  9. 开源界“四大卷王”畅聊端侧开源,你关心的都在这儿!
  10. TouchScript中文---Pointer Input