/*

&:取地址运算符

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

*/

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. json 打印

    JsonObject jsonObj = new JSONObject(); jsonObj.put("success",true); jsonObj.put("msg& ...

  2. DOM事件-级别

    DOM事件0~3 不同级别的DOM事件因其实现方式不同,都有自己的特性. 0级:是在dom元素上提供相关事件类型属性,js程序可以通过这些特定类型的属性注册事件处理程序. 特性:一个元素同种类型的事件 ...

  3. Ubuntu英文版中无法输入中文标点符号的问题

    问题: 不管是中文还是英文输入法,输入的标点符号都是英文的 解决方法: ctrl + .  进行切换,一个是lation 符号,一个是全角符号

  4. Nginx 最新版源码编译安装 包含常用模块作用及所需依赖

    第一部分 Nginx最新版源码编译安装 1. 使用的模块 模块1:http_rewrite_module 基于正则匹配来实现重定向.依赖PCRE库,见依赖1 模块2:http_gzip_module ...

  5. Glassfish 设置时区

    对于Glassfish domain 或者instance下,某个日志的时区不对,前提是系统时区争取. 可以尝试通过如下命令查看jvm 时区设置 asadmin list-jvm-options 如果 ...

  6. day3字符串操作作业详解

    1.day3题目 1.有变量name = "aleX leNb" 完成如下操作: 1) 移除 name 变量对应的值两边的空格,并输出处理结果 2) 移除name变量左边的&quo ...

  7. Sass 愿景

    在最近的一个 CSS 见面会上,我向与会者提问,“有人会在日常的工作流中使用 Sass 吗?”回答结果压倒性的表示肯定——保守谨慎地使用 Sass 已经成为过去式.Sass 正迅速成长为编写 CSS ...

  8. Python3.x下Selenium3.x之安装篇

    环境安装 Python环境: 首先我们需要安装Python语言,这个不过多详述,仅给出建议 Python2.x目前支持的第三方库类较多 Python3.x是修改了许多2.x版本的不足,但支持的库类较少 ...

  9. Linux —— shell认识与基础命令

    shell 基础 shell路径: /etc/shells 系统shell版本: $SHELL 在父shell中可以调用子shell echo 把指定内容输出到屏幕上 操作选项: -e: 支持反斜杠控 ...

  10. net core 2.0 web api + Identity Server 4 + angular 5

    net core 2.0 web api + Identity Server 4 + angular 5前台使用angular 5, 后台是asp.net core 2.0 web api + ide ...