C语言——指针

A1.指针变量的定义及基本使用方法

地址和指针的概念

  • 内存区的每一个字节有一个编号,这就是“地址”
    • 如果持续中定义了一个变量,在对持续进行编译时,系统就会给这个变量分配内存单元
  • 一个变量的地址称为该变量的“指针”
    • 指针是一种特殊的变量,它是存放地址的

指针变量的定义方法

  • 定义指针变量的一般形式为
    • 基类型 *指正变量名
        • int *abcd_1
  • 定义指针变量时同时将它初始化
    • int *pointer_1=&a
      • 定义指针变量pointer_1指向a
  • 注意
    • 指针变量中只能存放地址(指针),不能将一个整数(或如何其他非地址类型的数据)赋给一个指针变量
    • 指针变量前面的“*”,表示该变量的类型为指针型变量
        • float *pointer_1(指针变量是pointer_1)

指针变量作为函数参数

  • 函数的参数不仅可以是整型,浮点型,字符型等数据,还可以是指针类型,它的作用是将一个变量的地址传送到另一个函数中

数组指针与指向数组的指针变量的定义

  • 一个变量地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量可以指向变量,也可以质量数组元素(把某一元素的地址放在指针变量中)数组元素的指针就是数组元素的地址
  • 对该指针变量赋值:p=&a【0】

通过指针引用数组元素

  • 引用一个数组元素
    • 下标法
      • a【i】
    • 指针法
      • *(a+1)或*(p+i)
  • 不同方式输出数组中元素
    • 用数组名加下标(下标法)
    • 用数组名计算数组元素地址(指针法)
    • 用指针变量计算数组元素地址(p=a,*(p+i))
    • 用指针变量先后指向各元素(p=a,p++,*p)

数组名作为函数参数

  • 实参与形参的4钟情况
    • 形参和实参都用数组名(f(a,10) f(int x【】,int n))
    • 实参用数组名,形参用指针变量 (f(a,10) f(int *x,int n))
    • 实参形参都用指针变量(*p=a;f(p,10) f(int *x,int n))
    • 实参是指针变量,形参为数组名(*p=a;f(p,10) f(int x【】,int n))
  1. 指向多维数组的指针和指针变量
  • int a【2】【3】={1xx--6}
  • int *p
    • 下列等价
    • p=&a【i】【j】
    • p=a【i】+j
    • p=*(a+1)+j

字符串的表达形式

  • 用字符数组存放字符串,并输出字符串
    • char string【】=“xxx”
    • print(“%s,string”)
  • 用字符指针指向字符串
    • char *string=“xxx”
    • print(“%s,string”)

字符串指针变量与字符数组的区别

  • 字符数组是若干个元素组成,每个元素中存放一个字符,而字符指针变量中存放的是字符串第一个字符的地址
  • 赋值方式
    • 只能对字符数组的各个元素赋值
      • 错误
        • char str【14】
        • str=“i love china!”;
      • 对字符指针变量可以采用
        • char *a
        • a=“i love china!”
      • 对字符指针变量赋初值
        • char *a=“i love china!”
        • char *a
        • a=“i love China!”

对数组的初始化

  • char str【14】={“i love xxx”’
  • 定义了一个字符数组,在编译时为他分配内存单元,使由确定的地址。
  • 定义一个字符指针变量,给指针变量分配内存单元,其中可以放一个字符变量的地址
  • 指针变量的值是可以改变的

函数指针

  • 函数指针变量常用的用途之一是把指针作为参数传递到其他函数。
  • 指向函数的指针也可以作为参数,以实现函数地址的传递,以被调用的函数使用实参函数

指针函数

  • 一个函数可以带回一个整型值,字符值,实型值,指针型数据(地址)
  • 带回指针值的数据,一般定义形式
    • 类型名 *函数名(参数列表)

指针数组

  • 元素都是指针类型数据,指针数组的每个元素都是指针变量
  • 一维指针数组的定义
    • 类型名 数组名(数组长度)

数组指针

  • 指向数组的指针

指向指针的指针

  • 定义一个指向指针数据的指针变量
  • char **p
  • *(*p) 指针变量是指向一个字符指针变量的定义形式

相关推荐

  1. C语言指针——野指针

    2024-06-15 08:24:03       37 阅读
  2. C语言——二级指针

    2024-06-15 08:24:03       39 阅读
  3. C语言 数组指针

    2024-06-15 08:24:03       41 阅读
  4. C语言指针3

    2024-06-15 08:24:03       36 阅读
  5. C语言指针2

    2024-06-15 08:24:03       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-15 08:24:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-15 08:24:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-15 08:24:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-15 08:24:03       20 阅读

热门阅读

  1. 使用 Selenium 自动化获取 CSDN 博客资源列表详解

    2024-06-15 08:24:03       8 阅读
  2. 深入理解 MySQL 查询分析工具 EXPLAIN 的使用

    2024-06-15 08:24:03       7 阅读
  3. Python实现电脑自动关机

    2024-06-15 08:24:03       7 阅读
  4. Ubuntu下ClickHouse安装

    2024-06-15 08:24:03       9 阅读
  5. Centos7.9 安装 clickhouse 24.6.1

    2024-06-15 08:24:03       5 阅读
  6. Scala入门教程

    2024-06-15 08:24:03       8 阅读
  7. volatile关键字

    2024-06-15 08:24:03       6 阅读
  8. Python中的多态和封装是如何实现的

    2024-06-15 08:24:03       10 阅读
  9. React小记——如何理解 props 单向数据流?

    2024-06-15 08:24:03       9 阅读
  10. 【个人博客搭建】(24)统一api接口返回格式

    2024-06-15 08:24:03       7 阅读