取地址符(&) 和  取值符(*)

(1)& 运算符 :用于取一个对象的地址

例如:int *p;    p = &c;    将c的地址赋值给指针变量p,我们称p为 “指向” c的指针。

取地址运算符只能用于内存中的对象,即变量与树组元素,它不能作用于表达式、常量或register类型的变量。

(2)* 运算符:作用于指针时表示访问指针所指向的对象

例如:int x;    x = *p;  将p指向的地址所对应的对象赋值给x,所以 x 就等于c的值

(3)& 与 * 使用示例:

int x = 1, y = 2, z[10];

int *ip;    //ip is a pointer to int

指针简介

指针:一种保存变量地址的变量。

声明形式:  数据类型 *指针名;

例如:int *p;    //声明了一个int型的指针变量p

注意:指针只能指向某种特定类型的对象,也就是说,每个指针都必须指向某种特定的数据类型。(一个例外情况跟是指向void类型的指针可以存放指向任何类型的指针,但它不能间接引用其自身)

由于指针也是变量,所以在程序中可以直接使用,而不必通过间接引用的方法使用。

例如  如果iq是另一个指向整型的指针,那么语句 iq = ip 将把ip中的值拷贝到iq中,这样,指针iq也将指向ip指向的对象。

代码讲解:

char ch = 'a';char *cp =&ch;

ps:左值、右值表示表达式在等号的左边还是右边。

右值:&ch 表示的是ch变量所在的地址;

左值:他的左值是非法的,因为没有指定一个存储空间,&ch只是int类型的常量,不能给它赋值;

右值:cp表示的是cp指针变量保存的地址值,这里保存的是变量ch的地址;

左值:可以使任意同类型变量的地址

右值:与&ch类型,这里取得是指针变量的地址,是指针的指针地址;

左值:非法,只是一个int类型的常量

右值:间接访问符,取得指针指向的变量ch的值;

左值:设置指针指向的变量ch的值

右值:取得指针指向的变量ch的值 再加1;

左值:非法。

右值:取得ch下一个内存地址的值;

左值:设置ch下一个内存地址的值;

右值:++在前,表达式指向ch下一个内存地址,之后cp的值加1;

左值:非法

右值:表达式指向cp原来的值,之后cp的值加1

左值:非法

右值:指向ch下一个地址的值,之后cp加1;

左值:设置ch下一个地址的值,并cp加1;

右值:先取得cp所指向的地址的值,就是ch的值,然后cp再加1;

左值:设置ch的值,cp加1

右值:是cp指向的地址的值(ch的值),在加1;

左值:非法

右值:从右到左结合,先是cp的地址加1,然后去该地址的值,最后值加1

左值:非法

右值:先执行后面的++,这个返回的是cp的拷贝,然后访问cp指向的地址ch的值,最后ch的值加1,cp加1;

左值:非法

对指针变量取地址_C语言指针简介(amp;和*运算符)相关推荐

  1. C语言中 指针变量 取地址符的用法 *指针变量名的用法

    文章目录 总结 Intro Code 图示 总结 众所周知,内存可以看成一个一个相邻的格子(类比Excel),而数据就存储于这些格子之中(size大的变量占用格子数多,size小就占用小).而每个格子 ...

  2. 对指针变量取地址意义

    先说结论 对一级指针取地址运算就是就相当于二级指针 #include<stdio.h> void func(int** a, int** b) {static int x = 100;st ...

  3. printf 指针地址_c语言对指针的理解

    先来讲一下本人学指针的经历:大一的时候刚接触c语言对指针这东西真的是太迷了,感觉麻烦难懂不想其他语言一样.但是搞懂以后就被指针的魅力吸引甚至喜欢上c语言.不多讲,开始!(文章可能有些长,但放心全是基础 ...

  4. 返回局部变量或临时变量的地址_C++的函数不可以返回局部变量的指针

    很多童鞋在编写函数返回指针的时候,常常会出现一些列内存错误.当然这可能是很多原因造成的,但是有一个原因就是返回的是局部变量的指针.先给出结论C++的函数不可以返回局部变量的指针. 首先要明确局部变量的 ...

  5. 64位程序怎么判断指针是否有效_C 语言指针怎么理解?

    注: 看完这篇一定会让你理解透彻指针的本质 是的,这一篇的文章主题是「指针与内存模型」 说到指针,就不可能脱离开内存,学会指针的人分为两种,一种是不了解内存模型,另外一种则是了解. 不了解的对指针的理 ...

  6. 指针(*)、取地址()、解引用(*)与引用()

    指针(*).取地址(&).解引用(*)与引用(&) C++ 提供了两种指针运算符,一种是取地址运算符 &,一种是间接寻址运算符 *. 指针是一个包含了另一个变量地址的变量,您可 ...

  7. 一、初级篇——指针(*)、取地址()、解引用(*)与引用()的区别

    1. 初步了解--指针与取地址 先看程序: #include<stdio.h>int main(void) {int num = 7;int *p = #//初始化指针,也可以写作int* ...

  8. C++ 指针与取地址

    知识点小结 C++的指针和引用因为涉及到地址和地址当中的存储内容,所以比较容易混淆.首先需要注意的是,指针和引用存放的都是被引用对象的地址!地址!地址!比如对于指针,当我们定义一个指针p,比如说int ...

  9. 【C 语言】字符串拷贝 ( 函数形参使用推荐方法 | 凡是涉及 修改指针指向 的操作一律创建新的 指针变量 执行 | 引入 辅助 局部 指针变量 )

    文章目录 一.函数形参使用推荐方法 二.完整代码示例 一.函数形参使用推荐方法 在函数中 , 形参 中的 指针变量 , 不建议直接使用 ; 推荐 在 函数中 , 定义 局部 指针变量 , 接收 形参中 ...

最新文章

  1. Sprites实现翻页按钮,圆角,宽度不固定
  2. MySQL—03—MySQL的查询
  3. C++:=default一些说明
  4. Ext之Combobox的远程加载数据实例(附前后台代码)
  5. 2015年中国钢铁企业排名50强名单
  6. 编程实现 4 条重写规则,可生成半法式和法式
  7. TPC-H生成Spark测试用的伪数据集(转载)
  8. 不属于python数据类型的是_Python不支持的数据类型有( )。
  9. 华为python有必要学吗_【华为云技术分享】这个 Python 库有必要好好学学
  10. java中字符串后加Box_字符串未显示在JavaFX中ComboBox的Tableview上
  11. updatebyprimarykeyselective的where条件是全部字段_多组连续数据对比,不满足单因素方差分析的条件怎么办?...
  12. 从零实现深度学习框架——常见运算的计算图
  13. 3.7 Spark RDD编程
  14. 11th Iran Nationwide Internet Contest 解题报告
  15. 海贝音频384khz_海贝音乐app下载-海贝音乐手机版下载v3.3.0 - 星光下载
  16. 常用DOS命令(三)--RD命令
  17. 马踏棋盘问题的程序c语言,C语言马踏棋盘
  18. Docker使用阿里云镜像
  19. plotwidget横坐标日期_求助x轴为日期时间的图形绘制
  20. 我的2018——最美的年龄为最纯的梦想尽最大的努力

热门文章

  1. 30分钟,让你彻底明白Promise原理
  2. 官方 React 快速上手脚手架 create-react-app
  3. object dection资源
  4. 2013——M笔试南京——程序
  5. oracle 记录被另一个用户锁住
  6. WebPart(SharePoint)中如何使用自定义的Javascript和css样式
  7. c/c++ 修改文件的创建时间,修改时间,访问时间 [和弦]
  8. 电脑USB的超奇怪问题
  9. 基于SSM实现保健院管理系统
  10. WritableComparable排序案例(全排序)