/*

&:取地址运算符

*:指针运算符(或称为间接运算符),取指针所指向的对象的内容

*/

int a,b;

int *pointer_1, *pointer_2;

pointer_1 = &a;//把变量a的地址赋给pointer_1,切记不要将一个整数赋值给指针变量

&*pointer_1;//&和*的优先级相同,但按自右而左的方向结合,次句先执行(*pointer_1)而* pointer_1就是变量a,再执行&运算,故&*pointer_1 和 &a等价,即取变量a的地址

*&a;//先进行&运算得a的地址,再进行*运算,即&a所指向的变量即a,故*&a 和 a 等价

*pointer_1++;//++和*的优先级相同,自右而左结合,故相当于*(pointer_1++),但由于++再pointer_1的右侧,因此先执行*pointer_1得a的值,在将pointer_1++,这样pointer_1就不再指向a了

(*pointer_1)++;//与a++等价

/*********************************************************************/

/*数组与指针*/

int num[10];

int *p;

p = &num[0];//将num[0]元素的地址赋给指针变量p,p指向数组的第0号元素

//c语言规定数组名(不包括形参数组名,形参不占用内存)代表数组中首元素的地址,故以下两

p = &num[0];

p = num;

//语句等价

*p = 1;//在这里将1赋给p当前所指向的数组元素即num[0],值得注意的是赋值前p必须指向一个数组元素

//C中规定指针变量p已经指向数组中的一个元素,则p+1指向同一数组中下一个元素,而不是将p的值简单+1;例如,数组元素是float型,没个元素占4个字节,则p+1意味着p的值(地址)加上4个字节,p+1所代表的地址实际上是p+1*d,d是一个数组元素所占的字节数

//如果p的初值为&num[0],则 p+i和num+i都是num[i]的地址

*(p+i);

*(num+i);

//是p+i或num+i所指向的数组元素即num[i]

/*******************************************************************/

/*总结*/

p++;

p+=1;//使p指向下一元素,即num[1]

*p++;

*(p++);//先得到p指向变量的值即*p,再使p+1=>p

*(++p);//先使p+1=>p,再取*p

++(*p);//表示p指向的元素值+1

//如果p指向num数组中第i个元素;则:

*(p--);

num[i--];//这两语句等价,先对p进行*运算,再使p自减

*(++p);

num[++i];//这两语句等价,先使p自加,再做*运算

*(--p);

a[--i];//这两语句等价,先使p自减,再做*运算

*运算和&运算的更多相关文章

  1. 位运算&字节运算

  2. oracle的递归运算(树运算) 无限树形

    oracle的递归运算(树运算)start with org_id ='1'connect by prior parent_id=son_id 1.前言   oracle的递归运算,在我们web页面的 ...

  3. 学习php 韩顺平 数据类型 三元运算,字符串运算类型运算

    数据类型 整型:int 4个字节长度 1个字节8个bit 所以最大的整型数值是2的31次方 第一位是的0,1 表示正负,0表示正数,1表示负数 小数(float)分 精度计算  从左边开始算第一个不为 ...

  4. Python3基础 ** 幂运算 // 整除运算

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  5. 简单的java程序通过对话框输出 计算加减乘除运算(运算方法可选择)

    import javax.swing.JOptionPane; // import class JOptionPane public class Addition { public static vo ...

  6. 图 ADT接口 遍历运算 常规运算 邻接矩阵实现

    Graph.h   (图的结构, 遍历, 常规操作接口) /*定义图的最大定点数, 它要大于等于具体图的顶点树n*/ #define MaxVertexNum 12 /*定义图的最大边数,它要大于等于 ...

  7. jQuery的加法运算.

    jQuery的加法运算. 加法运算 ?想必大家听到这都会不屑了,加法运算这是多么简单的运算.然而有的时候在jQuery也让人挺头疼的. 常规的是: var num1 = 123; var num2=1 ...

  8. C#位运算讲解与示例

    首先每一个权限数都是2的N次方数 如:k1=2 ; //添加 k2=4 ; //删除 k3=8; //修改 ... 如此定义功能权限数,当需要组合权限时,就需要对各个所拥有的权限数按位或了. 如: p ...

  9. C#枚举中的位运算权限分配浅谈

    常用的位运算主要有与(&), 或(|)和非(~), 比如: 1 & 0 = 0, 1 | 0 = 1, ~1 = 0 在设计权限时, 我们可以把权限管理操作转换为C#位运算来处理. 第 ...

随机推荐

  1. 洛谷 P2048 [NOI2010]超级钢琴(优先队列,RMQ)

    传送门 我们定义$(p,l,r)=max\{sum[t]-sum[p-1],p+l-1\leq t\leq p+r-1 \}$ 那么因为对每一个$p$来说$sum[p-1]$是一个定值,所以我们只要在 ...

  2. django视图 CBV 和 FBV

    目录 视图 CBV 和 FBV 什么是视图? FBV function based view 基于函数的视图 CBV class based view 基于类的视图 小技巧 CBV 如何获取页面请求类 ...

  3. PAT甲级——1105 Spiral Matrix (螺旋矩阵)

    此文同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/90484058 1105 Spiral Matrix (25 分) ...

  4. windows installer cleanup utility - Windows下卸载神器

    https://windows-installer-cleanup-utility.soft32.com

  5. fstream类总结

    - ofstream, ifstream, fstream 在头文件fstream中,在fstream类中,用open成员函数打开文件,实现类与文件的关联操作. - open(filename, mo ...

  6. Angular2.0的学习(一)

    第一节课 1.Angular程序架构 2.搭建Angular开发环境 3.开发在线竞拍程序Auction的第一个版本

  7. NET Core 2.1 Preview 1

    NET Core 2.1 Preview 1 [翻译] .NET Core 2.1 Preview 1 发布 原文: Announcing .NET Core 2.1 Preview 1 今天,我们宣 ...

  8. 从两个不同的ServiceProvider说起

    从两个不同的ServiceProvider说起 我们一致在说 ASP.NET Core广泛地使用到了依赖注入,通过前面两个系列的介绍,相信读者朋友已经体会到了这一点.由于前面两章已经涵盖了依赖注入在管 ...

  9. JAVA基础之Properties类、序列化流及打印流、commons-IO

    个人理解: Properties类是个存储String类型的键值对的集合类,可以用其存储一些关键的账号密码什么的,同时后面的注释可以很好的帮助理解,但是需要注意的是其文件中不能出现其他的符号:序列化与 ...

  10. Spring Cloud--Feign服务调用组件的使用实例

    引入依赖: 启动类上添加@EnableFeignClients注解: 写调用接口: 直接@Autowired注入服务调用接口: 底层使用了动态代理,对接口进行了实现. 并且封装了RestTemplat ...