1.使用场景

使用指针时,必须将它指向一个变量的地址或者为它分配空间方能使用,如下所示:

#include#include int main(int argc, char const *argv[])

{

int a[5]={0,1,2,3,4};

int *b,*d;

int c=2;

int *e=a; //e指向a数组首地址

//*b=2; 无法直接初始化

//printf("%d\n", *b);

e=e+2; //移动两个地址单元

d=&c; //d指向c的地址来表示值

c=4; //修改原c变量的值,d指针的值会发生改变

b=(int *)malloc(sizeof(int));//为b分配一个int型空间来直接存储值

*b=2;//分配空间后可以直接赋值了

printf("this is e,b,c,d :%d %d %d %d\n",*e,*b,c,*d);

return 0;

}

2.类型说明

(1)int *a :表示一个指向int型变量的指针,指向的是变量的地址单元

(2)char *b:表示一个指向char变量的指针

*a表示的是这个指针指向地址的值,a为此指针本身的地址,这点要明确,一般用*(a+1)、*(a+2)来表示值,如

int nums[5]={0,1,2,3,4};

int *a=nums;

printf("%d %d %p\n",*a,*(a+1),a);

输出为:

(3)结构体指针

typedef struct node{

int data;

struct node * next;

}pnode,*linklist;

linklist p;

p=(struct node*)malloc(sizeof(struct node));

p即结构体变量,它本身类型为struc node *类型,使用时,必须为它分配空间或指向此结构体对象地址方能进行下一步操作。

3.指针的运算

指针指向变量地址,若原变量的内容发生了变化,它本身也会发生变化,指针之间的运算一般为值运算和地址运算

(1)值运算:直接通过*运算方式,像a+*(a+1),结果为第一个元素与第二个元素相加。

int nums[5]={0,1,2,3,4};

int *a=nums;

(2)地址运算:通过a+i的方式.指针会指向a的下i个地址。

int nums[5]={0,1,2,3,4};

int *a=nums;

a=a+2;

printf("%d\n",*a);

结果输出2

举例说明指针的运算方法c语言,C语言中指针的使用方法相关推荐

  1. windows 中 vpn连接提示, 虚拟专用网络 由于RAS/虚拟专用网络,服务器上配置的某个策略,服务器用于验证用户名和密码的身份验证方法可能与连接配置文件中的身份证验证方法不匹配

    windows 虚拟专用网络 由于RAS/虚拟专用网络,服务器上配置的某个策略,服务器用于验证用户名和密码的身份验证方法可能与连接配置文件中的身份证验证方法不匹配 打开网络 更换网络适配器 选项 右键 ...

  2. Python:如何查看一个对象有哪些属性、方法以及查询源码中只有pass的方法的参数

    Python:如何查看一个对象有哪些属性.方法以及查询源码中只有pass的方法的参数 1.问题背景 2.解决思路 2.1.查看对象有哪些属性或方法 2.1.1.dir()函数 2.1.2.help命令 ...

  3. php5中魔术方法函数有哪几个,php中的类魔术方法有哪些

    php中的类魔术方法有:1.__sleep,返回一个包含对象中所有应被序列化的变量名称的数组:2.__tostring,返回一个类被当作字符串时要输出的内容:3.__construct,构造方法:4. ...

  4. python中使用grpc方法示例_在Python中使用gRPC的方法示例

    本文介绍了在Python中使用gRPC的方法示例,分享给大家,具体如下: 使用Protocol Buffers的跨平台RPC系统. 安装 使用 pip pip install grpcio pip i ...

  5. 教你一个无本万利的赚钱方法_一个在股市中稳健赚钱的方法

    我经历过2005年和2013年开始的两次大牛市. 在2005年开始的那次牛市中,我在营业部看到一个老头,自始至终持有一只房地产的股票,赚了20多倍. 我还发现,在这波上市中,那些一直在做短线,高抛低吸 ...

  6. java中的invoke方法_详解Java中Method的Invoke方法

    在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而子类改写了这个方法,从子类class通过getDeclaredMethod也能获取到M ...

  7. python列出所有方法_如何在python中列出所有Faker方法

    如何以编程方式列出Faker生成器对象中的所有可用方法? Faker文档显示了如何创建faker生成器并生成数据: from faker import Faker fake = Faker() fak ...

  8. C语言结构体中指针指向数组,指向结构体类型数组的指针的使用

    指向结构体类型数组的指针的使用 定义一个结构体类型数组,其数组名是数组的首地址,下面是关于指向结构体类型数组的指针的使用具体介绍,欢迎阅读! 定义结构体类型的指针,既可以指向数组的元素,也可以指向数组 ...

  9. 下面不属于python第三方库的安装方法的是-关于python中第三方库安装方法和问题解决...

    一.安装方法 方法一: 1.管理员身份启动命令行(运行--->cmd) 2.pip install 库的绝对路径和库的详细名称 :或者运用cd命令跳转到下载好的库所在的位置然后pip insta ...

  10. 方法 注释_在IDEA中配置类和方法的文档注释

    设置类的注释模板 /** * @Author ${USER} * @Create ${DATE} - ${TIME} * @Description */ 设置方法的注释模板 也可以选2,先新建一个模板 ...

最新文章

  1. php用户名相似度对比,PHP-如何快速计算出用户的相似度
  2. C++ 中的三种继承public , protected, private
  3. DDIA笔记——数据复制
  4. java timer线程结束_Java线程Timer定时器用法详细总结
  5. yolo mark的使用(转)
  6. 【英语学习】【Daily English】U14 Transportation L02 I'm afraid that you're going in the wrong direction.
  7. 判断画布中有重复纪录
  8. 【重难点】【Java集合 03】ArrayList、LinkedList、 Vector 和 Stack 的区别、CopyOnWriteArrayList
  9. 微信“小程序”开发小指南
  10. 程序员探案之 Python 和 Redis 的“第三者”
  11. 为什么JavaScript仅在IE中打开开发人员工具一次后才能工作?
  12. ArcGIS——Window Server2016中的安装10.2问题
  13. InstallShield安装过程介绍
  14. android studio release error INSTALL_FAILED_INSUFFICIENT_STORAGE
  15. Java开发工程师面试笔试试题,真题;
  16. 商务统计_3 概率论基础 2
  17. android的otg功能,android怎么打开otg功能
  18. layui table 渲染动态列及列数据
  19. java二维码生成 使用SSM框架 搭建属于自己的APP二维码合成、解析、下载
  20. 硬解直显模式实现抓图功能(二)

热门文章

  1. Dbutils常见方法
  2. ctguoj-取石头 (15分)
  3. Asp.net服务器端控件替换客户端控件
  4. android实现弹出输入法时,顶部固定,中间部分上移的效果,使用 Dialog 制作紧贴输入法顶部的输入框...
  5. python中sticky_Python stickymeta包_程序模块 - PyPI - Python中文网
  6. mysql 授权创建数据库_MySQL创建数据库与创建用户以及授权
  7. php算法复杂度,php的几个经典排序算法及时间复杂度和耗时​
  8. mysql 触发器 sql日志_mysql日志触发器实现代码
  9. rocketmq底层通信模块解析
  10. springmvc并发调用controller方法时对局部变量的影响