当前位置: 首页 > news >正文

38.【C语言】指针(重难点)(C)

目录:

8.const 修饰指针

  *修饰普通变量

  *修饰指针变量

9.指针运算

  *指针+或-整数

  *指针-指针

  *指针关系运算

往期推荐

承接上篇37.【C语言】指针(重难点)(B)

8.const 修饰指针

const 全称 constant adj.不变的

*修饰普通变量

#include <stdio.h>
int main()
{const int num = 0;num = 20;printf("%d\n", num);return 0;
}

这样写会报错

说明const修饰的值不可改变

注:在C语言中,这里的num是常变量,num的本质还是变量,因为有const修饰,编译器在语法上不允许修改这个变量;而在C++语言中,这里的num就是常量

如果要强行改变,用指针

#include <stdio.h>
int main()
{const int num = 0;int* pi = &num;*pi = 2;printf("%d\n", num);return 0;
}

 

但显然已经违反常变量的语法规则,需要限制指针的行动-->const修饰指针变量

*修饰指针变量

三种写法

1.const 放在*的左边

const int* pi = &num; int const * pi = &num;

 

 语法规则:指针指向的内容不能通过指针来改变,但是指针变量本身的值是可以改

*pi=?; 错误        pi=&n;正确

2.const 放在*右边

int* const pi = &num;

语法规则: 指针指向的内容能通过指针来改变,但是指针变量本身的值是不可改

*pi=?; 正确        pi=&n;错误

3.const 放在*的左右两边

const int* const pi = &num;

语法规则:由1,2推, 指针指向的内容不能能通过指针来改变,且是指针变量本身的值是不可改

9.指针运算

*指针+或-整数

在37.【C语言】指针(重难点)(B)中已提到一些内容

练习:因为数组在内存中连续存放,所以可以用指针打印数组

#include <stdio.h>
int main()
{int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };int*  pi = &arr[0];int length=sizeof(arr)/sizeof(arr[0]);for (int i=0;i<length;i++){printf("%d ", *(pi+i));//注意pi不变}return 0;
}

*指针-指针(即地址-地址)

大地址-小地址 和 小地址-大地址 ,注意有正负

#include <stdio.h>
int main()
{int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };printf("%d",&arr[8] - &arr);return 0;
}

 

总结:当两个指针指向同一个空间时,(指针-指针)的绝对值==指针之间的元素个数

进一步思考:

 求字符串长度:

1.strlen函数

strlen(数组); 统计\0之前的元素个数

#include <stdio.h>
int main()
{char arr[] = { "asdfghjk" };size_t result=strlen(arr);printf("%d", result);return 0;
}

具体见20.5.【C语言】求长度(sizeof和strlen)的两种方式

2.用指针

未遇到\0则指针++

#include <stdio.h>
int main()
{char arr[] = { "asdfghjk" };char* pi = &arr;//&数组名就是&数组名[0]int result = 0;//可以简写成while (*pi) \0的ASCI值是0while (*pi != '\0')//未到\0则继续循环{result++;pi++;//指针移动}printf("%d", result);return 0;
}

也可以改成指针-指针

printf("%d", pi-&arr);

  *指针(大小)关系运算 

可以用来打印数组

#include <stdio.h>
int main()
{int arr[] = { 0,1,2,3,4,5,6,7,8,9 };int* pi = &arr;int sz = sizeof(arr) / sizeof(arr[0]);while (pi < &arr[sz])//&arr[sz]越界不会产生影响{printf("%d ", *pi);pi++;}return 0;
}


往期推荐:

19.【C语言】指针(重难点)(A)

37.【C语言】指针(重难点)(B)

相关文章:

38.【C语言】指针(重难点)(C)

目录: 8.const 修饰指针 *修饰普通变量 *修饰指针变量 9.指针运算 *指针或-整数 *指针-指针 *指针关系运算 往期推荐 承接上篇37.【C语言】指针&#xff08;重难点&#xff09;&#xff08;B&#xff09; 8.const 修饰指针 const 全称 constant adj.不变的 *修饰普通变量 #…...

Vue-05.指令-v-for

v-for 列表渲染&#xff0c;遍历容器的元素或者对象的属性 v-for“列表元素名 in 列表名” <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wi…...

自动驾驶的一些大白话讲解

无人驾驶牛逼吗&#xff1f;我来帮你祛魅【原理缺陷解析】_哔哩哔哩_bilibili 5分钟讲明白自动驾驶端到端&#xff0c;解释为什么华为智驾并不是遥遥领先 到底什么是端到端自动驾驶系统&#xff1f;为何我会说这是智能驾驶的弯道超车机会&#xff1f;我希望今天用5分钟的时间&…...

Python学习笔记--参数

目录 实参与形参 不定长参数 拆分参数列表 返回值 实参与形参 1. 定义函数时&#xff0c;带默认值的形参必须放在不带默认值的形参后面 下面程序的输出结果是&#xff08; &#xff09;。 def StudentInfo(country中国,name): print(%s&#xff0c;%s%(name,country)…...

刷题——大数加法

大数加法_牛客题霸_牛客网 string solve(string s, string t) {if(s.size() < t.size()) return solve(t, s);reverse(s.begin(), s.end());reverse(t.begin(), t.end());string ans;int d 0;//进位制for(int i0; i < s.size(); i){d s[i] - 0;//取得数字值if(i < …...

Pytorch人体姿态骨架生成图像

ControlNet是一个稳定扩散模型&#xff0c;可以复制构图和人体姿势。ControlNet解决了生成想要的确切姿势困难的问题。 Human Pose使用OpenPose检测关键点&#xff0c;如头部、肩膀、手的位置等。它适用于复制人类姿势&#xff0c;但不适用于其他细节&#xff0c;如服装、发型和…...

前端面试常考的HTML标签知识!!!

语义标签 标签名语义描述header网页头部网页的主要头部区域nav网页导航网页的导航链接区域footer网页底部网页的底部区域aside网页侧边栏网页的侧边栏区域section网页区块网页的独立区块 | article | 网页文章 | 网页的独立文章区域 | 字符实体 作用&#xff1a;在网页中显…...

Oracle触发器

Oracle触发器就是特定事件发生时自动执行的存储过程。 触发器基本使用 基本语法&#xff1a; create [or replace] trigger 触发器名称 alter | before | instead of [insert] [[or] update [of 列1,列2,...]] [[or] delete] on 表名 [referencing {OLD [as] old / NEW [as]…...

GPT-5:未来已来,我们如何共舞于智能新纪元?

GPT-5&#xff1a;未来已来&#xff0c;我们如何共舞于智能新纪元&#xff1f; 在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;的每一次飞跃都深刻地改变着人类社会的面貌。从AlphaGo击败围棋世界冠军&#xff0c;到GPT系列模型引领自然语言处理&#x…...

2024年6月 青少年机器人技术等级考试理论综合试卷(五级)

202406 青少年等级考试机器人理论真题五级 第 1 题 ESP32 for Arduino&#xff0c;通过引脚2读取按键开关的返回值&#xff0c;电路如下图所示&#xff0c;程序pinMode(2, mode);中&#xff0c;参数mode的值是&#xff1f;&#xff08; &#xff09; A&#xff1a;INPUT B&…...

【Go】 HTTP编程3-路由httprouter

HttpRouter httprouter httprouter是第三方的库&#xff0c;不是go的标准库&#xff0c;使用命令 go get -u github.com/julienschmidt/httprouter &#xff0c;下载该模块&#xff0c;-u表示如果已经下载但更新到最新版本Router 实现了http.Handler接口&#xff0c;为各种 re…...

Spring Boot 整合 SA-Token 使用详解

Spring Boot 整合 SA-Token 使用详解 在现代Web开发中&#xff0c;用户认证与授权是构建安全应用的基础。SA-Token是一个轻量级的Java权限认证框架&#xff0c;它以其简洁的API设计、高效的执行效率以及丰富的功能特性&#xff0c;成为了众多开发者在Spring Boot项目中实现用户…...

1.3 C 语言入门实战:从 Hello World 到基础语法解析

目录 1 程序的作用 2 初识 Hello World 2.1 新建项目 2.2 程序解释 3 printf 的作用 4 注释及其注意事项 4.1 单行注释 4.2 多行注释 4.3 嵌套错误 5 项目在磁盘上的位置 1 程序的作用 如下图所示&#xff0c;我们编写了一个可以做加法的程序&#xff0c;我们给程序…...

一文读懂什么是Go语言goroutine

1. 进程、线程和协程的区别 进程: 进程是具有一定独立功能的程序&#xff0c;进程是系统资源分配和调度的最小单位。每个进程都有自己的独立内存空间&#xff0c;不同进程通过进程间通信来通信。由于进程比较重量&#xff0c;占据独立的内存&#xff0c;所以上下文进程间的切换…...

计算机毕业设计 农家乐管理平台 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

Spring Boot优缺点

Spring Boot 是一款用于简化Spring应用开发的框架&#xff0c;它集成了大量常用的框架和工具&#xff0c;大大简化了Spring项目的配置和部署。下面是Spring Boot的优缺点&#xff1a; 优点&#xff1a; 简化配置&#xff1a;Spring Boot自动配置功能可以根据应用的依赖自动配…...

Android Studio中创建apk签名文件

本文以macOS中Android Studio 2021.1.1版本为例介绍创建apk签名文件的操作步骤&#xff1a; 1.启动Android Studio&#xff0c;并打开一个Android项目。 2.依次点击菜单&#xff1a;Build -> Generate Signed Bundle / APK...。 3.在弹出的"Generate Signed Bundle or …...

CRC32 JAVA C#实现

项目中用到CRC32进行校验得地方&#xff0c;需要用到C#和java进行对比&#xff1a; 一、C#实现&#xff1a; class CRC32Cls { protected ulong[] Crc32Table; //生成CRC32码表 public void GetCRC32Table() { ulong Crc; …...

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——5Webscoket节点的使用

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——5Webscoket节点的使用 ​ 有了前面几篇文章的铺垫&#xff0c;现在已经可以实现我到手测试那一步的 1.解读usb_websocket_display.launch.py ​ 首先进入这个目录/root/dev_ws/src/origincar/originca…...

深入学习小程序第二天:事件处理与用户交互

一、概念 1. 事件绑定与类型 在小程序中&#xff0c;通过在组件上添加特定的属性&#xff08;如 bind 开头的属性&#xff09;来绑定事件处理函数&#xff0c;以响应用户的交互操作。常见的事件类型包括触摸事件、表单事件和系统事件&#xff1a; 触摸事件&#xff1a;用于响…...

WordPress开发工具链配置:IDE集成与CI/CD自动化

WordPress开发工具链配置&#xff1a;IDE集成与CI/CD自动化 【免费下载链接】WordPress-Coding-Standards PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions 项目地址: https://gitcode.com/gh_mirrors/wo/WordPress-Coding-Standards WordPres…...

企业级解决方案:Magma智能体集群部署实战

企业级解决方案&#xff1a;Magma智能体集群部署实战 1. 引言 在当今AI技术快速发展的时代&#xff0c;企业级AI应用对计算资源的需求呈指数级增长。单个AI实例往往难以满足高并发、高可用的生产环境要求&#xff0c;而集群化部署成为解决这一挑战的关键方案。今天我们将深入…...

Sub-Agent 与 Agent Team 的本质区别

用了 Team 模式的 API&#xff0c;就是 Agent Team 了吗&#xff1f;从一个真实项目出发&#xff0c;拆解两种多 Agent 架构的核心差异。引言&#xff1a;名字叫 Team&#xff0c;就真是 Team 吗&#xff1f; 2026 年&#xff0c;AI 编程圈最热的词之一是"多 Agent 协作&q…...

【算法精解】CEC2021竞赛亚军算法-MadDE框架及代码实现(Matlab)

本文核心内容&#xff1a;  MadDE算法主要框架及该算法创新点  Matlab代码实现&#xff08;可免费获取&#xff0c;包括代码及原文献&#xff09; 不少同学改进算法有时缺乏可落地思路&#xff0c;或从文献获得灵感却苦于写不出代码。为此&#xff0c;KAU 推出【算法精解】…...

从XML解析到特征提取:手把手搞定Wikipedia多模态数据集的预处理全流程

从XML解析到特征提取&#xff1a;Wikipedia多模态数据集预处理实战指南 引言 在机器学习项目中&#xff0c;数据预处理往往占据整个流程70%以上的工作量。特别是面对Wikipedia这类包含文本和图像的多模态数据集时&#xff0c;工程师需要同时处理XML文档解析、图像特征提取、跨模…...

科研不秃头!谁还不知道这个零代码生信神器

各位深陷生信泥潭的科研宝子们&#xff0c;集合啦&#xff01;&#x1f4e2;你是否也经历过这样的绝望&#xff1a;❌ 导师甩来一组单细胞数据&#xff0c;你却连 Linux 怎么登录都不知道&#xff1f;❌ 好不容易装好了 R 语言&#xff0c;结果包版本冲突报错到怀疑人生&#x…...

线性代数实战:特征值与二次型的核心应用解析

1. 特征值与特征向量的实战密码 第一次接触特征值和特征向量时&#xff0c;我也觉得这不过是数学课本里的抽象概念。直到在图像压缩项目中亲眼看到&#xff0c;用前20%的特征向量就能还原90%的图像信息&#xff0c;才真正理解它的威力。特征值分解就像给矩阵做X光&#xff0c;能…...

OpenClaw压力测试:千问3.5-9B连续执行100个任务的稳定性

OpenClaw压力测试&#xff1a;千问3.5-9B连续执行100个任务的稳定性 1. 为什么需要压力测试&#xff1f; 上周我在本地部署了OpenClaw对接千问3.5-9B模型&#xff0c;准备用它来处理日常的文档整理和会议纪要工作。刚开始几个简单任务执行得很顺利&#xff0c;直到某天晚上让…...

SEO_掌握这5个SEO技巧,让流量持续增长

SEO技巧&#xff1a;让你的网站流量持续增长的5个关键策略 在当今数字化时代&#xff0c;网站流量的稳定增长对于企业的成功至关重要。搜索引擎优化&#xff08;SEO&#xff09;是提高网站流量的核心手段之一。掌握一些关键的SEO技巧&#xff0c;不仅可以帮助你在搜索结果中获…...

西交提出 OdysseyArena:让智能体真正“学会探索”的长程归纳推理基准

&#x1f4cc; 一句话总结&#xff1a; 本工作提出 OdysseyArena&#xff0c;一个面向长时程&#xff08;long-horizon&#xff09;、主动探索&#xff08;active&#xff09;、归纳学习&#xff08;inductive&#xff09;三大核心能力的交互式评测平台&#xff0c;系统性检验…...