C ~ 指针的运算
一 :取地址运算“&”与取内容运算“*”:
单目运算“&”是取操作对象的地址 , “*”是取指针指向的对象的内容 , 两者互为逆运算
int x , *p ;
p = &x ;
&(*p) = p 表示指针 ; *(&x)= x 表示变量x
二 :指针的算术运算 :
指针的运算与其基类型有关 , 一般的,如果p是一个指针 ,n是一个正整数 ,则对指针 p 进行 +(-)操作后的实际地址是 :
p +(-)n*sizeof(基类型)
char *p ;
int *q ;
float *tk ;
//假设当前地址为 : p = 2110H , q = 2231H , tk = 2478H
p += 1 ; // p = p + 1 = 2111H
q += 4 ; // q = q + 4*4 = 2239H
tk -= 3 ; // tk = tk -3*8 = 246CH
三 : 指针自加 ,自减运算 :
指针的自加 ,自减运算也是地址运算
m = * p ++ 等价于 m = *(p ++)
取指针 p 当前所指变量的值赋给变量 m ; p 做加 1 运算 , 指向下一个目标变量 .
m = * ++ p 等价于 m = * ( ++ p)
p 做加 1 运算 , 指向下一个目标变量 ; 取指针 p 当前所指变量的值赋给变量 m .
m = (*p)++ 与 m = ++(*p)
前者是将指针 p 所指的变量的值赋给变量 m , 然后变量 *p 自加 1 ;
后者是将指针 p 所指的变量 *p 的值自加 1 后赋给变量 m .
四 :指针间的减法运算 :
指向同一组类型相同数据的指针之间可以进行减法运算 , 相减的结果表示两指针间相距的数据的个数 .
五 :指针的关系运算 :
p , q 指向同一个数组 , p > q 表示p 是否指向 q 所指位置的后面 , 若成立 则 表达式的值为 非 0 , 否则为 0 .
六 :指针的下标运算 :
p[i] = *(p + i) ;
C ~ 指针的运算的更多相关文章
- C指针的运算
指针的运算在数组中才有意义 int *p; p++,一定是在一片连续的区域才有意义,当然越界也会带来诸多问题. void main() { ; int *p = #//这根本无界可言 ...
- go语言笔记——指针,和C用法以及本质一样,但不支持指针的+-运算!
4.4.2 值类型和引用类型 所有像 int.float.bool 和 string 这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值. Go 语言的取地址符是 &,放到一个 ...
- 听翁恺老师mooc笔记(6)--指针运算
指针值加1就是将指针值加上sizeof(指针所指变量的类型) 1+1=2,那么指针加1是加上了1这个数字吗?试一下,在代码中定义了char数组,char也是整数,数组名是ac,ac中有10个元素,0- ...
- #运算符、不同的指针类型、数组和指针、指针运算、堆、栈、静态区、只读区、下标VS指针
#运算符:用于在预编译期将宏参数转换为字符串 #define CONVERS(x) #x //注:没用双引号包括. 不同类型的指针占用的内存空间大小相同. 局部变量 定义: a[5]; 打印a[ ...
- C++指针的算术运算 、关系运算
下面随笔是关于指针的算术运算 .关系运算. 指针类型的算术运算 指针与整数的加减运算 指针++,--运算 指针类型的算术运算 指针p加上或减去n 其意义是指针当前指向位置的前方或后方第n个数据的起始位 ...
- C语言 指针小结
指针 -->指针变量 类型名 *变量名 int *point1; char *point2; 注意:*p可以直接使用,它代表指针p指向的变量,*p可以当做被指向的变量使用!~~~~ 一个变量的地 ...
- C语言-指针
C指针基础知识 C语言中,指针无疑是最令人头疼的.今天无事就来学学C语言的指针,在此留下点笔记,仅供个人参考. 首先要搞懂的是,指针是什么? 指针:是用来存放内存地址的变量. 不管是什么类型的指针,存 ...
- delphi.指针.应用
注:初稿...有点乱,可能增删改... 因为指针应用,感觉不好写,请大家指出错误,谢谢. 注意: 本文着重点讲的是指针的各类型的应用或使用,而不是说这种方法不应该+不安全+危险+不提倡使用. 其它:本 ...
- C/C++入门基础---指针(2)
5,数组指针的不同含义 int a[5][10]; printf(%d, %d, %d\n", a, a+1, &a+1); //1310392,1310432,1310592 a ...
随机推荐
- Displaying Tabbed and Stacked Canvas Using Show_View In Oracle Forms
Displays the indicated canvas at the coordinates specified by the canvas's X Position and Y Position ...
- weblogic的集群与配置图文
一.Weblogic的集群 还记得我们在第五天教程中讲到的关于Tomcat的集群吗? 两个tomcat做node即tomcat1, tomcat2,使用Apache HttpServer做请求派发 ...
- 漫谈程序员系列:3D打印能打印出程序员吗
首先声明,本文是一本正经的胡扯,绝不是随随便便的胡扯,请您不要随便攻击我胡说八道.我要反复星爷在<喜剧之王>里的台词:事实上.我是一本正经的喷子. 3D打印的定义 关于3D打印,以下是来自 ...
- css样式大全(整理版)
字体属性:(font) 大小 {font-size: x-large;}(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX.PD 样式 {font-style: obl ...
- VC++动态链接库(DLL)编程深入浅出(一)
1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量.函数或类.在仓库的发展史上经历了“无库-静 ...
- SVN客户端忽略无关文件
修改前请先备份文件 ~/.subversion/config. 1,打开Terminal,输入命令: $ open ~/.subversion/config 2,在打开的文件中寻找:`global ...
- vim 模式查找
1. / 正向查找, ?反向查找 2. \v 激活very magic搜索模式,撰写正则表达式更接近于perl的正则表达式,大多数字符不需要进行转义 3. \V 激活noVeryMagic模式,按字符 ...
- Spring 中StreamUtils教程
本文我们介绍StreamUtils类使用.StreamUtils是spring中用于处理流的类,是java.io包中inputStream和outputStream,不是java8中Steam.使用时 ...
- Codeforces Round #263 (Div. 2) proB
题目: B. Appleman and Card Game time limit per test 1 second memory limit per test 256 megabytes input ...
- Inno Setup 使用笔记
使 用 笔 记https://blog.csdn.net/dongshibo12/article/details/79095971 1.Inno Setup 是什么?Inno Setup 是一个免费的 ...