C语言 第八章

目录

1. 指针变量的定义、初始化及解引用

2. 指针变量做函数参数

3. 字符串

3.1 输入和输出

3.2 字符串的表示与存储

3.3 字符串处理函数

3.4 向函数传递字符串


1. 指针变量的定义、初始化及解引用

  • 解决的问题
    • 变量的寻址方式哪有几种?
    • 何为指针?如何定义指针类型的变量?
    • 如何访问指针变量指向的存储单元中的数据?
  • 指针:内存地址
    • C的高效、高能主要来自于指针
    • 强转与指针,并称C语言的两大神器
    • 黑客攻击服务器利用的bug绝大部分都是指针和数组造成的
  • 内存地址
    • 内存中的每个字节都有唯一的编号
    • 内存地址字长一般与主机相同,32位机使用32位地址,最多支持232字节内存(4G)
    • 地址是一个无符号整数,从0开始,依次递增
  • 直接寻址:直接到变量名标识的存储单元中读取变量的值
  • 间接寻址:通过其他变量间接找到变量的地址读取变量的值
    • 访问指针变量指向的存储单元中的数据
  • 指针类型
    • int *pa = &a;
    • 存放变量地址的变量类型,也是具有指针类型的变量
    • 基类型:指针变量指向的数据类型(int)
    • ​​​​​指针变量的内容:&a,指针变量pa是变量a的指针
    • 使用%p格式符显示变量地址:printf("&a=%p\n", &a);
  • 指针的初始化
    • 指针变量使用之前必须初始化,可将其初始化为NULL(在stdio.h中定义为0)
      • 空指针——值为NULL的指针,即无效指针
      • 空指针不一定是指向地址为0的存储单元的指针
        • 并非所有编译器都使用0地址
        • 某些编译器为空指针使用不存在的内存地址
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言第八章是关于指针的使用和相关概念的。同学们在学习这一章节时,可以使用思维导图作为学习工具来帮助理解和记忆。 首先,在思维导图的中央,可以写上章节的主题“C语言第八章-指针”。然后将主题分成几个不同的分支。 第一个分支可以是指针的基本概念和定义。在这个分支中,可以列出指针的定义和声明的语法,以及如何通过指针来访问和修改变量的值。此外,还可以介绍指针的运算符,如取址运算符(&)和解引用运算符(*)。 第二个分支可以是指针和数组的关系。在这个分支中,可以讨论指针和数组之间的相似性和差异性,以及如何使用指针来处理数组元素,如指针的算术运算和指针数组。 第三个分支可以是指针和函数的关系。在这个分支中,可以介绍指针和函数之间的关系,如指针作为函数参数的使用以及函数返回指针的情况。 第四个分支可以是指针和动态内存分配的关系。在这个分支中,可以探讨使用指针来动态分配和释放内存的方法,如malloc()和free()函数的使用。 最后,可以在思维导图的边缘加入一些常见的问题和实例,以帮助同学们更好地理解和应用这些概念。同时,也可以在思维导图中添加一些关键的代码示例,以便同学们进行练习和巩固知识。 通过使用思维导图来整理和展示C语言第八章的内容,同学们可以更加清晰地理解和记忆相关概念,提高学习效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值