首页 > 编程学习 > 第十一章 指针

第十一章 指针

发布时间:2023/4/3 16:26:31

第十一章 指针



目录

  • 一. 指针变量
  • 二. 取地址运算符和间接寻址运算符
  • 三. 指针赋值



一. 指针变量

  1. 概述
      指针就是地址,而指针变量就是存储地址的变量。指针的大小都是相同的。32位机器一个地址是4个byte。64位机器一个地址是8个byte。指针需要多大空间取决于地址的存储需要多大空间。

在这里插入图片描述


  1. 声明
      与普通变量声明类似,唯一的不同就是变量名前有*。
    例子:int *p
      C语言要求每个指针变量只能指向一种特定类型(引用类型)的对象,至于应用类型是什么类型则没有限制。


二. 取地址运算符和间接寻址运算符

  1. 取地址运算符
    &取地址运算符。
    例子, x是变量,&x就是x在内存中的地址。
    例子:
    Int I, *p;
    P = &I;


  1. 间接寻址运算符
    *间接寻址运算符。
    例子,p是指针,*p就是当前指向的对象。
    续上例子:
    Printf(“%d\n”,*p);

例子:
J = *&I;
本质就是:j = i


  只要p指向i,*p就是i的别名。p不仅拥有和i相同的值,而且对p的改变也会改变i的值(*p是左值,所以对他赋值是合法的)。


注意:不要把间接寻址运算符用于未初始化的指针变量。如果指针变量p没有初始化,那么试图使用p的值会导致未定义的行为。给*p赋值尤其危险。如果p恰好具有有效的内存地址,赋值会试图修改储存在该地址的数据。


三. 指针赋值

  C语言允许使用赋值运算符进行指针的复制,但前提是两个指针具有相同的类型。任意数量的指针变量都可以指向同一个对象。



本篇博客为本人学习C时的详细笔记,如有错误之处,还望各位指正。
文章为原创,如要转载请注明出处

Copyright © 2010-2022 mfbz.cn 版权所有 |关于我们| 联系方式|豫ICP备15888888号