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

C语言笔记20

指针运算


#include <stdio.h>int main()
{char ac[] = {0,1,2,3,4,5,6,7,8,9,};char *p = ac;printf("p =%p\n", p);printf("p+1=%p\n", p+1);int ai[] = {0,1,2,3,4,5,6,7,8,9,};int *q = ai;printf("q =%p\n", q);printf("q+1=%p\n", q+1);return 0;
}

result:

  • p =0xbffbad5a
  • p+1=0xbffbad5b
  • q =0xbffbad2c
  • q+1=0xbffbad30

sizeof(char)=1;sizeof(int)=4,

给指针加1表示要让指针指向下一个变量

如果指针不是指像一片连续分配的空间(如数组),这种运算就没有意义

还可以对指针做的算术运算:

给指针加、减一个整数(+ += - -=)

递增递减(++ --)

两个指针相减(结果是两地址的差除以sizeof内的类型)

*p++

取出p的那个数据来,并将p移到下一个位置去

*的优先级低于++

常用于数组类的连续空间操作

在某些CPU上,还可以直接被编译成一条汇编指令

char ac[] = {0,1,2,3,4,5,6,7,8,9,-1};

char *p = &ac[0];

int i;

法一:for ( i=0; i<sizeof(ac)/sizeof(ac[0]); i++ ) {

                printf("%d\n", ac[i]);

           }

法二:while ( *p != -1 ) {        //for ( p=ac; *p=-1; ) {

                printf("%d\n", *p++);

            }

            int ai[] = {0,1,2,3,4,5,6,7,8,9,};

            int *p = ai;

指针比较

< <= == > >= !=都可以对指针做,比较它们在内存中的地址

数组中单元的地址肯定是线性递增的



0地址

内存中有0地址,但0地址通常是个不能随便碰的地址,所以指针不应该具有0值

因此可以用0地址来表示特殊的事情:

  • 返回指针是无效的
  • 指针没有被真正初始化(先初始化为0)

NULL是一个预定义的符号,表示0地址

指针的类型

无论指向什么类型,所有的指针的大小都是一样的,因为都是地址,但是指向不同类型的指针是不能直接互相赋值的(避免用错指针)

指针的类型转换

void*表示不知道指向什么东西的指针,计算时与char*相同(但不相通)

指针也可以转换类型:eg.  int *p = &i; void*q = (void*)p;

这并没有改变p所指的变量的类型,而是让后人用不同眼光通过p看它所指的变量

小结

指针的作用

需要传入较大的数据时用作参数

传入数组后对数组做操作

函数返回不止一个结果,需要用函数来修改不止一个变量

动态申请的内存

……

相关文章:

C语言笔记20

指针运算 #include <stdio.h>int main() {char ac[] {0,1,2,3,4,5,6,7,8,9,};char *p ac;printf("p %p\n", p);printf("p1%p\n", p1);int ai[] {0,1,2,3,4,5,6,7,8,9,};int *q ai;printf("q %p\n", q);printf("q1%p\n", q1)…...

基于SSM+微信小程序的房屋租赁管理系统(房屋2)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的房屋租赁管理系统实现了有管理员、中介和用户。 1、管理员功能有&#xff0c;个人中心&#xff0c;用户管理&#xff0c;中介管理&#xff0c;房屋信息管理&#xff…...

selenium案例——爬取哔哩哔哩排行榜

案例需求&#xff1a; 1.使用selenium自动化爬虫爬取哔哩哔哩排行榜中舞蹈类的数据&#xff08;包括视频标题、up主、播放量和评论量&#xff09; 2.利用bs4进行数据解析和提取 3.将爬取的数据保存在本地json文件中 4.保存在excel文件中 分析&#xff1a; 1.请求url地址&…...

HTML5教程(三)- 常用标签

1 文本标签-h 标题标签&#xff08;head&#xff09;&#xff1a; 自带加粗效果&#xff0c;从h1到h6字体大小逐级递减一个标题独占一行 语法 <h1>一级标题</h1><h2>二级标题</h2><h3>三级标题</h3><h4>四级标题</h4><h5…...

【HCIE-Datacom考试战报】2024-08-21 深圳 SRv6

8月21日深圳考试战报&#xff08;SRV6&#xff09; 前言 大家好呀&#xff0c;我是来自誉天的学员---&#xff0c;我是今年4月份开始看集训、备考实验的&#xff0c;但是专业课比较多&#xff0c;又还有其他比赛&#xff0c;所以我刚开始的进度很慢&#xff0c;六月底才进入冲…...

【京准电钟】“安全卫士”:卫星时空安全隔离防护装置

【京准电钟】“安全卫士”&#xff1a;卫星时空安全隔离防护装置 【京准电钟】“安全卫士”&#xff1a;卫星时空安全隔离防护装置 当前&#xff0c;我国电力系统普遍采用北斗卫星或者GPS卫星授时来实现时间同步&#xff0c;但不加防护的授时装置存在卫星信号被干扰或欺骗的风险…...

优先级队列(2)_数据流中第k大元素

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 优先级队列(2)_数据流中第k大元素 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目…...

【CSS】纯CSS Loading动画组件

<template><div class"ai-loader-box"><!-- AI loader --><div class"ai-loader"><div class"text"><p>AI智能分析中....</p></div><div class"horizontal"><div class&quo…...

rootless模式下istio ambient鉴权策略

环境说明 rootless模式下测试istio Ambient功能 四层鉴权策略 这里四层指的是网络通信模型的第四层&#xff0c;主要的传输协议为TCP和UDP。 用于限制服务间的通信&#xff0c;比如下面的策略应用于带有 app: productpage 标签的 Pod&#xff0c; 并且仅允许来自服务帐户 clus…...

超详细的总结!最新大模型算法岗面试题(含答案)来了!

大模型应该是目前当之无愧的最有影响力的AI技术&#xff0c;它正在革新各个行业&#xff0c;包括自然语言处理、机器翻译、内容创作和客户服务等&#xff0c;正成为未来商业环境的重要组成部分。 截至目前大模型已超过200个&#xff0c;在大模型纵横的时代&#xff0c;不仅大模…...

vmware-17pro全网最细安装教程(图文讲解,不需注册账户)

文章目录 一、下载安装包&#xff1a; 二、安装教程&#xff1a; 三、检查是否安装成功 四、许可证密匙 vmware安装教程 一、下载安装包&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1yC610SU1-O9Jtk7nUrZuSA?pwdsKBy 提取码&#xff1a;sKBy 二、安装教程&…...

C/C++(二)C++入门基础

这一章会介绍C入门必须掌握的一些基础概念。 一、函数重载 1、什么是函数重载&#xff1f; 函数重载是C相比于C语言的一个重大改进。 即C允许在同一作用域内声明多个功能类似的同名函数&#xff0c;这些函数的参数类型 / 个数 / 类型顺序不同。&#xff08;注&#xff1a;返回…...

人工智能发展:一场从“被教导”到“自我成长”的奇妙冒险

说到人工智能&#xff08;AI&#xff09;&#xff0c;大家的第一反应往往是机器人、无人驾驶、或者那个让人害怕的AI会不会取代人类。其实&#xff0c;AI的进化过程简直像一部精彩的电影&#xff0c;有起伏、有高潮、有让人摸不着头脑的时刻。今天&#xff0c;我们就一起来“吃…...

企业级 RAG 全链路优化关键技术

本文根据2024云栖大会实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a; 邢少敏 | 阿里云智能集团高级技术专家 活动&#xff1a; 2024 云栖大会 - AI 搜索企业级 RAG 全链路优化关键技术 在2024云栖大会上&#xff0c;阿里云 AI 搜索研发负责人之一的…...

学习文档(5)

Redis应用 目录 Redis应用 Redis 除了做缓存&#xff0c;还能做什么&#xff1f; Redis 可以做消息队列么&#xff1f; Redis 可以做搜索引擎么&#xff1f; 如何基于 Redis 实现延时任务&#xff1f; Redis 除了做缓存&#xff0c;还能做什么&#xff1f; 分布式锁&…...

node.js下载安装以及环境配置超详细教程【Windows版本】

node安装以及环境变量配置 Step1&#xff1a;选择版本进行安装Step2&#xff1a;安装Node.jsStep3&#xff1a;环境配置Step4&#xff1a;检查node.js是否成功安装Step5&#xff1a;npm修改下载镜像 Step1&#xff1a;选择版本进行安装 Node.js 安装包及源码下载地址为 Node.…...

08_实现 reactive

目录 编写 reactive 的函数签名处理对象的其他行为拦截 in 操作符拦截 for...in 循环delete 操作符 处理边界新旧值发生变化时才触发依赖的情况处理从原型上继承属性的情况处理一个对象已经是代理对象的情况处理一个原始对象已经被代理过一次之后的情况 浅响应与深响应代理数组…...

finereport 中台 帆软 编码解码

帆软用的 post 方式编码不是用的 dict&#xff0c;而是二次 url 编码&#xff0c;需要二次解析 import time import urllib.parse import json# 原始字符串 encoded_string data "__parameters__%7B%22MANUFACTURER%22%3A%22%22%2C%22CATEGORY%22%3A%22%22%2C%22HHPN_L…...

Day15-数据库服务全面优化与PT工具应用

Day15-数据库服务全面优化与PT工具应用 1、数据库服务优化讲解1.2 数据库服务系统层面的优化1.3 数据库服务软件版本选择1.4 数据库服务结构参数优化1.4.1 数据库连接层优化1.4.2 数据库服务层优化1.4.3 数据库引擎层优化1.4.4 数据库复制相关优化1.4.5 数据库其他相关优化 1.5…...

开源限流组件分析(二):uber-go/ratelimit

文章目录 本系列漏桶限流算法uber的漏桶算法使用mutex版本数据结构获取令牌松弛量 atomic版本数据结构获取令牌测试漏桶的松弛量 总结 本系列 开源限流组件分析&#xff08;一&#xff09;&#xff1a;juju/ratelimit开源限流组件分析&#xff08;二&#xff09;&#xff1a;u…...

IDM激活脚本终极指南:三步永久免费解锁下载神器

IDM激活脚本终极指南&#xff1a;三步永久免费解锁下载神器 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 还在为IDM试用期到期而烦恼&#xff1f;每次看到&quo…...

低碳环境下新型电气能源系统优化配置与运行仿真研究

摘要&#xff1a;在“双碳”目标和新能源快速发展的背景下&#xff0c;传统电气能源系统面临碳排放高、新能源消纳能力不足以及运行调度灵活性较弱等问题。为提高系统低碳运行水平&#xff0c;本文以风电、光伏、储能、可控负荷和智慧电网为主要研究对象&#xff0c;开展低碳环…...

ARM DCC通信机制与RealMonitor协议栈解析

1. ARM DCC通信机制深度解析 调试通信通道(Debug Communications Channel, DCC)是ARM架构中用于主机调试器与目标设备通信的基础设施。不同于常规的串口或USB调试接口&#xff0c;DCC直接利用ARM核心的调试组件实现&#xff0c;具有以下显著特点&#xff1a; 寄存器级通信 &a…...

Chrome扩展开发实战:打造浏览器侧边栏ChatGPT助手

1. 项目概述&#xff1a;一个让ChatGPT常驻浏览器侧边栏的利器如果你和我一样&#xff0c;每天的工作和学习都离不开浏览器&#xff0c;并且频繁地与ChatGPT对话来获取灵感、润色文案或者调试代码&#xff0c;那么你肯定对在无数个标签页之间来回切换感到厌烦。每次都要打开一个…...

极简风项目交付倒计时!:紧急修复MJ --v 6.2中隐藏的1.33倍宽高比偏移Bug,避免客户验收驳回(含补救Prompt包)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;极简风项目交付倒计时&#xff01; 当交付周期压缩至 72 小时&#xff0c;极简风不再是一种美学选择&#xff0c;而是工程效率的刚性约束。我们摒弃冗余文档、跳过非核心评审环节&#xff0c;聚焦于可…...

百度网盘直链解析工具:3分钟突破限速实现满速下载

百度网盘直链解析工具&#xff1a;3分钟突破限速实现满速下载 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否曾为百度网盘的下载速度而烦恼&#xff1f;非会员用户经常…...

Netgear路由器终极救援指南:用nmrpflash免费快速修复变砖设备

Netgear路由器终极救援指南&#xff1a;用nmrpflash免费快速修复变砖设备 【免费下载链接】nmrpflash Netgear Unbrick Utility 项目地址: https://gitcode.com/gh_mirrors/nmr/nmrpflash 当你的Netgear路由器在固件升级过程中意外断电&#xff0c;或者刷入错误固件导致…...

All in Token,三个运营商建Token工厂,中国移动跟进Token经营 三大运营商争夺AI阵地

随着Token&#xff08;词元&#xff09;经营战略的密集落地&#xff0c;三大运营商在AI领域的竞争愈发激烈。在日前举行的2026移动云大会上&#xff0c;中国移动正式发布了Token运营生态体系与移动模型服务平台MoMA&#xff0c;宣布接入超300款模型&#xff0c;并通过Token集约…...

如何快速提升游戏帧率:OpenSpeedy游戏加速优化终极指南

如何快速提升游戏帧率&#xff1a;OpenSpeedy游戏加速优化终极指南 【免费下载链接】OpenSpeedy &#x1f3ae; An open-source game speed modifier. 项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedy 你是否厌倦了游戏卡顿和掉帧&#xff1f;OpenSpeedy是一款…...

Google Labs Jules Awesome List:构建与维护高质量开发者资源清单指南

1. 项目概述&#xff1a;一份面向开发者的“Awesome List”清单在开源社区和开发者圈子里&#xff0c;有一个约定俗成的传统&#xff1a;当某个技术领域或工具生态变得足够庞大和复杂时&#xff0c;总会有热心的贡献者站出来&#xff0c;整理一份名为“Awesome List”的清单。这…...