C语言基础语法-教案09(搞定指针就搞定C语言 指针进阶)

【WorkBuddy专栏47】学生党用WorkBuddy做开发学习——多语言速成与练习结合实战 阅读详情

最近给大家争取到一个 深夜福利

保证你在深夜手机刷到 嘎嘎香~

那就是  大流量卡

缺点:月租太便宜 

185GB~

100分钟通话时长~

长期套餐~

畅想自由的气息

流量自由的同时还拥有超长通话,而且免费领取。

废话不多说直接上图。

名额有限,感兴趣的家人私我或者直接加微信:lyg15314144781

流量卡

char型指针

char型指针实质上跟别的类型的指针并无本质区别,但由于C语言中的字符串以字符数组的方式存储,而数组在大多数场合又会表现为指针,因此字符串在绝大多数场合就表现为char型指针。

  • 定义:
char *p = "abcd";

多级指针

  • 如果一个指针变量 p1 存储的地址,是另一个普通变量 a 的地址,那么称 p1 为一级指针
  • 如果一个指针变量 p2 存储的地址,是指针变量 p1 的地址,那么称 p2 为二级指针
  • 如果一个指针变量 p3 存储的地址,是指针变量 p2 的地址,那么称 p3 为三级指针
  • 以此类推,p2、p3等指针被称为多级指针
  • 示例:
int a = 100;
int   *p1 = &a;  // 一级指针,指向普通变量
int  **p2 = &p1; // 二级指针,指向一级指针
int ***p3 = &p2; // 三级指针,指向二级指针

指针万能拆解法

  • 任意的指针,不管有多复杂,其定义都由两部分组成。
    • 第1部分:说明指针的名字
    • 第2部分:说明指针所指向的数据类型,可以是任意的类型

  • 示例:
char   *p1;      // 第1部分:*p1; 第2部分:char
char  **p2;      // 第1部分:*p2; 第2部分:char *
char ***p3;      // 第1部分:*p3; 第2部分:char **
char  (*p4)[3];  // 第1部分:*p4; 第2部分:char [3]
char  (*p5)(int, float); // 第1部分:*p5; 第2部分:char (int, float)
  • 注解:
  1. 上述示例中,p1、p2、p3、p4、p5本质上并无区别,它们均是指针
  2. 上述示例中,p1、p2、p3、p4、p5唯一的不同,是它们所指向的数据类型不同
  3. 第1部分的声明语句,如果由多个单词组成,C语言规定需要将其拆散写到第2部分的两边

void型指针

  • 概念:无法明确指针所指向的数据类型时,可以将指针定义为 void 型指针
  • 要点:
  1. void 型指针无法直接索引目标,必须将其转换为一种具体类型的指针方可索引目标
  2. void 型指针无法进行加减法运算
  • void关键字的三个作用:
  1. 修饰指针,表示指针指向一个类型未知的数据。
  2. 修饰函数参数列表,表示函数不接收任何参数。(预习)
  3. 修饰函数返回类型,表示函数不会烦任何数据。(预习)
  • 示例:
// 指针 p 指向一块 4 字节的内存,且这4字节数据类型未确定
void *p = malloc(4);


// 1,将这 4 字节内存用来存储 int 型数据
*(int *)p = 100;
printf("%d\n", *(int *)p);

// 2,将这 4 字节内存用来存储 float 型数据
*(float *)p = 3.14;
printf("%f\n", *(float *)p);
  • 注意:以上示例仅仅是为了讲解 void 的语法,实际应用中一般不需要定义 void 型指针,而是根据具体的需要,直接定义具体类型的指针。

const型指针

  • const型指针有两种形式:①常指针 ②常目标指针
  1. 常指针:const修饰指针本身,表示指针变量本身无法修改。

  1. 常目标指针:const修饰指针的目标,表示无法通过该指针修改其目标。

  • 常指针在实际应用中不常见。
  • 常目标指针在实际应用中广泛可见,用来限制指针的读写权限
  • 示例:
int a = 100;
int b = 200;

// 第1中形式,const修饰p1本身,导致p1本身无法修改
int * const p1 = &a; 

// 第2中形式,const修饰p2的目标,导致无法通过p2修改a
int const *p2 = &a;
const int *p2 = &a;

函数指针(预习:函数)

  • 概念:指向函数的指针,称为函数指针。
  • 特点:函数指针跟普通指针本质上并无区别,只是在取址和索引时,取址符和星号均可省略
  • 示例:
void   f (int); // 函数 f 的类型是: void (int)
void (*p)(int); // 指针 p 专门用于指向类型为 void (int) 的函数

p = &f; // p 指向 f(取址符&可以省略)
p =  f; // p 指向 f

// 以下三个式子是等价的:
  f (666); // 直接调用函数 f
(*p)(666); // 通过索引指针 p 的目标,间接调用函数 f
 p (666); // 函数指针在索引其目标时,星号可以省略
  • 要点:
  1. 函数指针是一类专门用来指向某种类型函数的指针。
  2. 函数的类型不同,所需要的函数指针也不同。
  3. 函数的类型,与普通变量的类型判定一致,即去除声明语句中的标识符之后所剩的语句。

最近给大家争取到一个 深夜福利

保证你在深夜手机刷到 嘎嘎香~

那就是  大流量卡-湘久卡 

缺点:月租太便宜 

185GB~

100分钟通话时长~

长期套餐~

畅想自由的气息

流量自由的同时还拥有超长通话,而且免费领取。

废话不多说直接上图。

名额有限,感兴趣的家人私我或者直接加微信:lyg15314144781

流量卡
Python编程入门全攻略:从零基础语法到实战项目开发 编程入门的第一步往往卡在语言选择与学习路径上。Python凭借接近自然语言的简洁语法和跨领域应用能力,成为零基础学习者最友好的选择。其核心设计理念是让开发者专注解决问题,而非纠缠底层机制,这恰好契合现代软件开发的效率需求。从变量、数据类型、流程控制到函数与文件操作,Python的语法体系既严谨又灵活,配合列表推导式、异常处理等特性,能帮助初学者快速建立编程思维。在自动化办公、数据分析、爬虫开发等真实场景中,Python都展现出极高的工程价值。本文基于系统性学习路线,结合视频与书籍的搭配策略,通过完整项目实战 阅读详情

相关推荐

计算机程序设计(C语言)教案.doc

计算机程序设计(C语言)教案 " "计算机 "总学时 " " "程序设计 " " " " " " " " " " " " " " "简要回 "讲解实验四 "通过讲解实 " "顾 "复习printf和scanf函数,getchar()和putchar函数的用"验四回顾顺 " " "法 "序结构程序 " " " "设计方法 " "阐述主 "关系运算符和关系表达式 "强调重点和 " "题 "逻辑运算符和逻辑表达式 "难点 " " "条件运算符 " " " "if语句(重点、难点) " " " "switch语句(重点、难点) " " "关系运 "关系运算实际上是比较运算,两个值进行比较,判断比较 "强调关系运 " "算符和 "的结果是否符合给定的条件,如果符合比较的结果为真, "算符中等于 " "关系表 "否则结果为假。 "用==表示, " "达式 "用关系运算符将两个表达式(可以是算术表达式、关系表"注意与=的区" " "达式、逻辑表达式、赋值表达式、字符表达式)连接起 "别 " " "来的式子叫关系表达式。 " " " "关系运算符与其它运算符的优先次序。 " " " "C语言提供六种关系运算符: " " " " < 小于 " " " " <= 小于等于 " " " " > 大于 " " " " >= 大于等于 " " " " == 等于 " " " " != 不等于 " " "逻辑运 "用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑 "强调在逻辑 " "算符和 "表达式。 "表达式的求 " "逻辑表 "逻辑运算符与其它运算符的优先次序。 "解中,并不是" "达式 "逻辑表达式的值应该是一个逻辑量"真"或"假",以数值"1"所有的逻辑 " " ""或"0"表示.而在判断一个量是否为"真"时,以"0"代表假"运算都被执 " " ",以非"0"代表真。 "行。 " " "在逻辑表达式的求解中,并不是所有的逻辑运算都被执行" " " "。 " " " "&&逻辑与 " " " "" "逻辑或 " " " "!逻辑非 " " "实例分 "例:满足下列一个条件即为闰年: 能被4整除,不能被100"通过课堂提 " "析 "整除 能被4整除,又能被400整除. "问,引导学 " " "(year%4= =0&&year%100!=0) " " year%400= =0 "生参与思考 " " "!((year%4= =0&&year%100!=0) " "year%400= =0) " " " "(year%4!=0) " "(year%100= =0&&year%400!=0) " " "条件运 "格式:表达式1?表达式2:表达式3 "强调条件运 " "算符 "条件运算符要求有三个操作对象,称三目运算符,它是c"算符要求有 " " "语言中唯一的三目运算符。 "三个操作对 " " "条件表达式 max= (a>b)? a:b 相当于 "象,是三目 " " "if (a>b) max=a; else max=b; "运算符 " " "说明: " " " "条件运算符的执行顺序 " " " "条件运算符的优先级别,仅高于赋值运算 " " " "条件运算符的结合方向为右结合性 " " " "条件表达式不能取代if语句 " " " "条件表达式中的表达式类型可以不同 " " "实例分 "例:编程,输入一个字符,若是大写就转换成小写;若 "通过例题体 " "析 "不是就不转换,输出字符。main(){char "会条件运算 " " "a;scanf("%c",&a);if (a>='A'&&a<='Z') "符的使用 " " "a=a+32;printf("%c",a);} " " " "//a=(a>='A'&&a<='Z')?a+32:a; " " " "} " " "if "if语句是用来判定是否满足所给定条件,根据判定结果( "分析if语句 " "语句( "真或假)决定执行给出的两种操作之一。 "的三种形式 " "重点、 "if语句的三种形式: " " "难点) " if (表达式) 语句 " " " " if (表达式) 语句1 else 语句2 " " " " if (表达式1) 语句1 " " " "else if (表达式2) 语句2 " " " "else if (表达式3) 语句3 " " " "...... " " " "else if (表达式n) 语句n " " " "else 语句n+1 " " "if语句 "在if语句的内部使用if语句,例如: "if语句的嵌 " "的嵌套 "if ( )if ( ) 语句1else if ( ) 语句2else 语句3 "套,注意与i" " " "f语句的三种" " " "形式的区别

c语言程序设计一维数组教案,《C语言程序设计》-任正云-电子教案 第7章数组

1、第七章 数组,The C Programming Language Chapter 7 Arrays,构造数据类型; 有序数据的集合; 可以看成是具有相同名字不同下标的同一数据类型的简单变量的集合.,一维数组 二维数组 字符数组,7.1 一维数组 定义: 类型说明 数组名正整型常量表达式;,定义数组名,数组中元素的个数;, :下标的界定符,不能用 ( ),注意事项: 数组必须先定义后使用; 只...

weixin_35968185的博客 576

使用 STM32F7 和 TensorFlow Lite 开发低功耗人脸识别设备

我们讨论了 STM32F7 的特点和能力,TensorFlow Lite 在 STM32F7 上的应用,以及一些降低功耗的优化技术。- 准备模型:选择合适的人脸识别模型,在 TensorFlow 中进行训练和导出,并使用 TensorFlow Lite 转换为适用于 STM32F7 的量化模型。请注意,上述代码仅展示了如何加载和运行 TensorFlow Lite 模型的方法,实际应用中需要集成人脸检测和识别模型,并根据实际需求进行相应的输入和输出处理。结合这两个工具,我们可以开发出低功耗的人脸识别设备。

weixin_66608063的博客 2586

C语言程序设计详细教程(完整版)

(1)定义格式:数据类型标识符 数据名 [整型常量表达式](2)注意事项:1、数组定义时,有一些编译器要求方括号内的表达式只能包含整型常量,不能包含变量。2、数组名实质上是一个指针,指向整个数组的首地址。3、在赋值时,数组名是一个常量,不能被赋值;数组元素是变量,可以被赋值。(1)定义格式:数据类型标识符 数组名 [整型常量表达式1] [整型常量表达式2];(2)注意事项:1、表达式1 和表达式2 分别对应的是数组的行数与列数2、二维数组在内存中是按行存放,及系统先放满第一行,再放第二行。

HXR_plume的博客 1万+

心电图机原理及电路超详细讲解

前置心电放大电路(虚线框:这是隔离电路的分界,在隔离电路分析中知道,完整隔离包括信号隔离(脉宽调制)、控制信号隔离(光电耦合)和电源隔离)后级放大电路。

fcxgfdjy的博客 2万+

WIFI 相关的频偏调试以及天线调试记录

WIFI RF 相关的频偏调试以及天线调试 1,频率误差(Frequency Error) 频率误差(Frequency Error):表征射频信号偏离该信号所处信道中心频率的大小,单位PPM。频偏误差要求范围如下表。 频偏越小越好。PPM的计算公式如下: 问题: 我们ESP8089认证测试的时候频偏测试超了。需要修改哪些呢。 测试频率点在2.411865385GHz 宣称点:2.412GHz 频率偏移计算:{(2.412GHz-2.411865385GHz)÷2...

armkits的博客 1万+

c语言指针 教案,C语言程序设计教案-第十章指针

《C语言程序设计教案-第十章指针》由会员分享,可在线阅读,更多相关《C语言程序设计教案-第十章指针(29页珍藏版)》请在人人文库网上搜索。1、第十章 指 针课题:第十章 指针 1-2教学目的:1、了解指针与地址的概念2、掌握指针变量的定义、初始化及指针的运算教学重点:教学难点:指针变量的定义、初始化及指针的运算指针的运算步骤一 复习引导指针是C语言的一个重要概念,也是C语言的一个重要特色。正确而灵...

weixin_42298352的博客 785

Python 实战:高效绕过 reCAPTCHA v3 的自动化策略

本文深入探讨了使用Python高效绕过reCAPTCHA v3验证的实战策略。文章首先解析了reCAPTCHA v3无感验证的评分机制,随后详细介绍了两种核心解决方案:一是利用CapSolver等专业API服务直接获取有效token,二是通过Playwright模拟真人浏览器行为以提升评分。文中提供了从定位关键参数到代码实现的完整流程,并强调了合规操作与请求频率控制的重要性,为自动化开发者提供了切实可行的技术指南。

weixin_29057065的博客 489

c 语言程序设计教案,C 语言程序设计教案(清华).doc

C 语言程序设计教案(清华)C 语言概述学习内容1.1 C语言出现的历史背景1.2 C语言的特点1.3 简单的C语言程序介绍1.4 运行C程序的步骤与方法目的要求:掌握C语言格式特点熟悉C语言的编辑环境重点难点:C语言格式特点TC编辑器的运行、操作重点难点详解:【例1.3】通过调用子函数求两个数的和。main() /* 主函数 */{int a,b,sum; ...

weixin_31178795的博客 367

汇总药用数据库(Pubchem,bingdingDB,Chembl,ExcapeDB)数据

记载一下如何汇总4大数据库的数据

recher_He1107的博客 3394

rk3566-11.0新增device分区

1.增加块设备 2.修改根目录节点权限 3.开机启动自动挂载 增加块设备 1.修改parameter.txt文件,新增块设备大小及命名 device/rockchip/rk356x/rk3566_r/parameter.txt FIRMWARE_VER: 11.0 MACHINE_MODEL: rk3566_r MACHINE_ID: 007 MANUFACTURER: rockchip MAGIC: 0x5041524B ATAG: 0x00200800 MACHINE

weixin_51115260的博客 3384

函数里改了变量,外面为什么纹丝不动?——指针初探,Day11学习记录

void change(int x) { x = 100; } 为什么改不了外面的变量?C 语言默认传值,形参是实参的副本。本文从 Day09 的困惑出发,用“门牌号”比喻拆解指针的本质(地址)、取地址(&)与解引用(*)的操作,并通过传地址解决“函数改不了外部变量”的问题,附带预处理指令(宏定义、文件包含、条件编译)入门。嵌入式自学 Day11。

2401_89245836的博客 666

自定义Usecase/Pipeline

Summary of Custom Usecase and Pipeline Configuration in SA8650 QCX Framework This article elaborates on the complete process of customizing a new Usecase and Pipeline based on the SA8650 QCX framework to meet OEM and Tier1 customization requirements, with

qq_39257814的博客 929

C 语言学习笔记

B站up Micro_Frank C语言大师系列课程笔记

g_c_m_g的博客 1221

【Android性能优化】Android App 冻结与内存压缩:CachedAppOptimizer 源码级解析

本文基于 AOSP Android 16 源码,以 `CachedAppOptimizer` 为核心,深度解析 Android 对"后台缓存应用"的两大治理手段——**进程冻结(Freezer)**与**内存压缩(Compaction)**。文中完整还原冻结的 debounce 去抖动机制、`mEarliestFreezableTime` 的最早可冻结时刻算法、粘性冻结(Sticky Freeze)的语义,以及解冻时必须"先解 binder 再解进程"的顺序奥义。

weixin_44081096的博客 175

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

c++相较c语言最有用的十种操作,让你的代码又简洁又快

如果你这么想,那你真的低估了C++的威力。很多人认为C++就是C语言加上了一点面向对象编程,但真的是这样吗?不完全是!C++的强大不仅仅体现在它的语法上,而是在那些让你写出简洁、高效、强大代码的操作上。今天,我就来带你见识一下,C++里那些看似简单却威力无穷的操作,它们可不仅仅让你的代码变得漂亮,还能让你的程序跑得飞快!准备好了吗?让我们一探究竟!

qq_36916968的博客 665

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

游戏大厂C/C++校招笔试核心考点与备考策略

C/C++作为游戏引擎开发的核心语言,其底层机制——内存布局、虚函数多态、STL容器行为——是校招笔试的高频考点。游戏公司不仅考察语法,更注重候选人对内存对齐、RAII、迭代器失效等工程细节的理解。笔试算法题通常设有严格时间限制(如C/C++ 1000ms),要求开发者掌握最优解法和高效的本地环境配置,例如使用VS Code搭配MinGW-w64搭建调试工具链。从C转C++的开发者尤其需要突破面向过程思维,建立RAII、数据驱动等现代C++工程理念。本文结合搜狐畅游真题,系统梳理笔试核心模块、代码阅读与改错

weixin_30256901的博客 379

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

学习.NET过程及工作经历...

ztmdsbt的专栏 1559

一文搞定MySQL基础

本文摘要总结了MySQL数据库操作的核心命令,分为四大部分:基础命令、数据定义语言(DDL)、数据操作语言(DML)和数据查询语言(DQL)。基础命令包括MySQL连接、版本查看和退出等操作;DDL部分涵盖数据库、表和字段的创建、修改、删除等操作;DML部分包含数据插入、删除和更新操作;DQL部分详细介绍了查询语句的语法结构,包括分组、排序、分页以及各种连接查询方式。此外还简要提及了数据控制语言(DCL)中的用户管理命令。这些命令为MySQL数据库的日常操作提供了完整参考。

Des_pupilles的博客 1039

Leno 语言入门指南

《Leno语言入门指南》摘要 Leno是一门介于Python和Go之间的静态类型检查脚本语言,融合了动态语言的灵活性和静态类型的安全性。该指南全面介绍了Leno的核心特性: 基础语法:支持类型推断(var)、任意精度整数、并行赋值和代码块作用域 类型系统:包含int(自动处理溢出)、float、string、bool等基础类型,以及泛型数组和字典 控制流:提供if/switch条件语句、多种for循环形式以及类型守卫功能 函数编程:支持高阶函数、匿名函数、闭包和默认参数 面向对象:通过struct实现,包含

cheng8214的专栏 313

音视频开发实战路径:C++/Linux/FFmpeg/WebRTC四阶能力闭环

音视频开发是融合操作系统、网络协议、编解码与实时传输的复合型工程能力。其核心原理在于零拷贝内存管理、内核级IO调度、标准音视频数据结构建模,以及可定制化实时传输协议栈。技术价值体现在低延迟、高并发、硬件协同与跨平台稳定性,广泛应用于直播推流、远程协作、智能终端多媒体处理等场景。本文聚焦真实项目验证的进阶路径,以C++为底层语言基础,Linux为运行环境核心,FFmpeg为音视频数据解析与处理标准接口,WebRTC为实时交互协议骨架,构建从裸流解析到端到端文件秒传的完整能力闭环。

weixin_30500473的博客 352

四个程序员的一天 【转载】

你,一个DotNet程序员,刚刚加入一个新项目组。除了你之外,其他的成员包括:Ceer,一直从事C项目的程序员,他刚刚转入C#不到一个月; Jally,整天抱着本Design Pattern(没错,就是GoF的那本)在啃的前Java程序员;以及Semon,你对他完全不了解,只是听PM介绍说他是搞Scheme的(传说中的第二古老的语言LISP的方言之一)。不过你也没在意,毕竟计算机这玩意,老东西是不

hhczy1003的专栏 454

JavaSE

JavaSE基础部分,主要聚焦在JAVA入门基础,墙裂推荐~

Kaka_csdn14的博客 274

程序员之路——一个老程序员对刚上大学的学弟学妹的忠告

程序员之路——一个老程序员对刚上大学的学弟学妹的忠告 分类: 程序员 学习 2012-09-20 09:46 3140人阅读 评论(43) 收藏 举报 目录(?)[-] 几个误区认为计算机技术等于编程技术:咬文嚼字的孔已己作风:不顾基础,盲目追赶时髦技术:几个重要的基础课程日三省乎己把最多的时间花在学习上 始终认为,对一个初学者来说,IT界

jinyeweiyang的专栏 410

程序人生--一个程序员对学弟学妹建议

程序人生--一个程序员对学弟学妹建议 发布时间: 2008-09-05 16:55阅读: 14975 次原文链接 全屏阅读  [收藏]   我始终认为,对一个初学者来说,IT界的技术风潮是不可追赶。我时常看见自己的DDMM们把课本扔了,去买些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论...

baitao6764的博客 133
上一篇: C语言基础语法-教案08(搞定指针就搞定C语言,指针你又了解多少)
下一篇: C语言基础语法-教案10(从小白到劝退之内存管理)
栈时没有名字
博客等级 码龄5年 289粉丝 47原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值