*运算和&运算
/*
&:取地址运算符
*:指针运算符(或称为间接运算符),取指针所指向的对象的内容
*/
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自减,再做*运算
*运算和&运算的更多相关文章
- 位运算&字节运算
- oracle的递归运算(树运算) 无限树形
oracle的递归运算(树运算)start with org_id ='1'connect by prior parent_id=son_id 1.前言 oracle的递归运算,在我们web页面的 ...
- 学习php 韩顺平 数据类型 三元运算,字符串运算类型运算
数据类型 整型:int 4个字节长度 1个字节8个bit 所以最大的整型数值是2的31次方 第一位是的0,1 表示正负,0表示正数,1表示负数 小数(float)分 精度计算 从左边开始算第一个不为 ...
- Python3基础 ** 幂运算 // 整除运算
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 简单的java程序通过对话框输出 计算加减乘除运算(运算方法可选择)
import javax.swing.JOptionPane; // import class JOptionPane public class Addition { public static vo ...
- 图 ADT接口 遍历运算 常规运算 邻接矩阵实现
Graph.h (图的结构, 遍历, 常规操作接口) /*定义图的最大定点数, 它要大于等于具体图的顶点树n*/ #define MaxVertexNum 12 /*定义图的最大边数,它要大于等于 ...
- jQuery的加法运算.
jQuery的加法运算. 加法运算 ?想必大家听到这都会不屑了,加法运算这是多么简单的运算.然而有的时候在jQuery也让人挺头疼的. 常规的是: var num1 = 123; var num2=1 ...
- C#位运算讲解与示例
首先每一个权限数都是2的N次方数 如:k1=2 ; //添加 k2=4 ; //删除 k3=8; //修改 ... 如此定义功能权限数,当需要组合权限时,就需要对各个所拥有的权限数按位或了. 如: p ...
- C#枚举中的位运算权限分配浅谈
常用的位运算主要有与(&), 或(|)和非(~), 比如: 1 & 0 = 0, 1 | 0 = 1, ~1 = 0 在设计权限时, 我们可以把权限管理操作转换为C#位运算来处理. 第 ...
随机推荐
- easyui的datagrid用js插入数据等编辑功能的实现
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 寒假作业第二组C题题解
这道题题意很简单,主要是练习map的使用.看输入有三个数据,水果名,地名,和出现次数.再看输出,很容易想到map<string,int> string是水果,int是次数,那个地名怎么用m ...
- Netty(1-1)Discard
一.DiscardServerHandler import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext ...
- 这个匿名对象没有实现IComparable接口
https://www.cnblogs.com/felixnet/p/5193086.html https://docs.microsoft.com/zh-cn/dotnet/api/system.i ...
- standby checking script 3则 V1 shell 脚本
---1 #!/bin/sh export ORACLE_SID=hdbexport ORACLE_BASE=/db/hdbdg/app/product/databaseexport ORACLE_H ...
- Ubuntu18.10设置静态IP、DNS、卸载无用软件
设置静态IP root@xueji:~# vim /etc/network/interfaces # interfaces() ) and ifdown() auto lo iface lo inet ...
- Linux netstat命令详解和使用例子(显示各种网络相关信息)
netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP ...
- Java Lambda表达式教程与示例
Lambda表达式是Java 8中引入的一个新特性.一个lambda表达式是一个匿名函数,而且这个函数没有名称且不属于任何类.lambda表达式的概念最初是在LISP编程语言中引入的. Java La ...
- Kendo UI Widgets 概述
UI Widgets 概述 Kendo UI 是基于 jQuery 库开发的,Kendo UI widgets 是以 jQuery 插件形式提供的.这些插件的名称基本上都是以 kendo 作为前缀.比 ...
- Redis数据库1
一.启动服务 #进入redis安装文件夹 cd /usr/local/redis/ #开启服务端(后端开启) ./bin/redis-server ./redis.conf #开启客户端 ./bin/ ...