网站建设 拖欠尾款水果建设网站前的市场分析

news/2025/10/2 10:26:20/文章来源:
网站建设 拖欠尾款,水果建设网站前的市场分析,手机网站开发软件下载,百度论坛首页指针初阶 1.指针是什么2.指针和指针类型2.1 指针-整数2.2 指针的解引用 3.野指针3.1 野指针成因3.2如何避免野指针 4.指针运算4.1 指针-整数4.2 指针-指针4.3 指针的关系运算 5.指针和数组6.二级指针7.指针数组 1.指针是什么 指针是什么#xff1f; 指针理解的2个要点#xf… 指针初阶 1.指针是什么2.指针和指针类型2.1 指针-整数2.2 指针的解引用 3.野指针3.1 野指针成因3.2如何避免野指针 4.指针运算4.1 指针-整数4.2 指针-指针4.3 指针的关系运算 5.指针和数组6.二级指针7.指针数组 1.指针是什么 指针是什么 指针理解的2个要点 指针是内存中一个最小单元的编号也就是地址平时口语中说的指针通常指的是指针变量是用来存放内存地址的变量 (单元编号 地址 C语言中指针) 那我们可以这样理解 内存: 指针变量 我们可以通过取地址操作符取出变量的内存其实地址把地址可以存放到一个变量中这个 变量就是指针变量 int main() {int a 10;//是向内存中的栈区空间申请4个字节的空间这4个字节用来存放10这个数值int* pa a;//这里我们对变量a取出它的地址可以使用操作符。//a变量占用4个字节的空间这里是将a的4个字节的第一个字节的地址存放在p变量中p就是一个之指针变量。//pa 0x000112233return 0; }总结 指针变量用来存放地址的变量。存放在指针中的值都被当成地址处理。 那这里的问题是 1.一个小的单元到底是多大1个字节 2.如何编址 经过仔细的计算和权衡我们发现一个字节给一个对应的地址是比较合适的。 对于32位的机器假设有32根地址线那么假设每根地址线在寻址的时候产生高电平高电压和低电平低电压就是1或者0 那么32根地址线产生的地址就会是 内存被划分为一个个内存单元每个内存单元的大小是1个字节每个字节的内存单元都有一个编号这个编号就是地址地址就是C语言中的指针地址要储存的话放在指针变量中每个内存单元都有唯一的地址来标识在32位机器上地址的大小是4个字节所以指针变量的大小也是4个字节 同理在64位机器上地址的大小是8个字节所以指针变量的大小也是8个字节 2.指针和指针类型 我们看以下代码 int main() {printf(%d\n, sizeof(char*));printf(%d\n, sizeof(short*));printf(%d\n, sizeof(int*));printf(%d\n, sizeof(double*)); }2.1 指针±整数 代码演示 int main() {int a 0;int* pa a;char* pc a;printf(%d\n, pa);printf(%d\n, pa1);printf(%d\n, pc);printf(%d\n, pc1); }运行结果 指针类型是有意义的 指针类型决定了指针1/-1跳过几个字节 char的指针1跳过1个字节 short的指针1跳过2个字节 int的指针1跳过4个字节 double的指针1跳过8个字节 2.2 指针的解引用 指针类型是有意义的 指针类型决定指针解引用时访问几个字节 比如char* 的指针解引用就只能访问一个字节而 int* 的指针的解引用就能访问四个字节。 3.野指针 概念 野指针就是指针指向的位置是不可知的随机的、不正确的、没有明确限制的 3.1 野指针成因 指针未初始化 代码演示 int main() {int* p;//未初始化*p 20;return 0; }指针访问越界 代码演示 int main() {int arr[10] { 0 };int* p arr;int i 0;for (i 0; i 10; i)//指针访问越界{//当指针指向的范围超出数组arr的范围时p就是野指针*p -1;p;}return 0; }指针指向的空间释放 代码演示 int* test() {int a 10;//0x0040fe44return a;//地址已返回出函数销毁 } int main() {//0x0040fe44int* p test();//p就是野指针printf(%d, p);return 0; }3.2如何避免野指针 指针初始化 小心指针越界 指针指向空间释放即使置NULL 避免返回局部变量的地址 指针使用之前检查有效性 int main() {int* p NULL;*p 20;//空指针不允许访问//....if (p ! NULL){//...确保非控指针在使用}return 0; }4.指针运算 4.1 指针±整数 代码演示1 int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };// 0 1 2 3 4 5 6 7 8 9 //是指针打印数组内容int* p arr;int i 0;//p -- arr//p arr//pi arri//*(pi) *(arri) arr[i]//*(arri) arr[i]//*(iarr) i[arr]//[]仅为操作符for (i 0; i 10; i){printf(%d , *(p i));//printf(%d , *(arr i));//printf(%d , arr[i]);//printf(%d , i[arr]);//p指向的是数组首元素//pi是数组下标为i的元素地址//pi起始时跳过i*sizeof(int)个字节}return 0; }运行结果 代码演示2 #define N_VALUES 5 int main() {float values[N_VALUES];float* vp;for (vp values[0]; vp values[N_VALUES];){*vp 0;}return 0; }分析 4.2 指针-指针 案例1 int main() {int arr[10] { 0 };////指针-指针的前提两个指针指向同一块区域指针类型时相同的//指针-指针差值的绝对值指针和指针之间的元素个数//printf(%d\n, arr[9] - arr[0]);printf(%d\n, arr[0] - arr[9]);return 0; }运输结果 案例2 //模拟实现strlen //1.计算器 //2.递归 size_t my_strlen(char* str) {char* start str;while (*str){str;}return str - start; } int main() {char arr[] abcdef;size_t len my_strlen(arr);printf(%zd\n, len);return 0; }运输结果 4.3 指针的关系运算 代码演示1 int main() {float values[N_VALUES];float* vp;for (vp values[N_VALUES]; vp values[0];){*--vp 0;}return 0; }分析 代码2代码1修改如下 #define N_VALUES 5 int main() {float values[N_VALUES];float* vp;for (vp values[N_VALUES - 1]; vp values[0]; vp--){*vp 0;}return 0; }分析 实际在绝大部分的编译器上是可以顺利完成任务的然而我们还是应该避免这样写因为标准并不保证它可行。 标准规定 允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较但是不允许与 指向第一个元素之前的那个内存位置的指针进行比较。 5.指针和数组 指针就是指针指针变量就是一个变量存放的地址指针变量的大小是4/8数组就是数组可以存放一组数数组的大小取决于元素类型和个数数组的数组名是首元素地址通过一个指针可以访问数组元素 数组名表示数组首元素地址但有两个例外 sizeof数组名数组名单独放在sizeof内部数组名表示整个数组计算的是数组的大小单位是字节数组名数组名表示整个数组取出的事数组的地址数组的地址和数组首元素地址的值是一样的但是类型和意义不同 代码案例1 int main() {int arr[10] { 0 };printf(%d\n, arr);printf(%d\n, arr1);//printf(%d\n, arr[0]);printf(%d\n, arr[0]1);//printf(%d\n, arr);printf(%d\n, arr1);//printf(%d\n, sizeof(arr)); }代码案例二 #define _CRT_SECURE_NO_WARNINGS 1 #includestdio.h int main() {int arr[10] { 0 };int* p arr;int i 0;for (i 0; i 10; i){printf(%p%p\n, pi, arri);}return 0; }运行结果 6.二级指针 指针变量也是变量是变量就有地址那指针变量的地址存放在哪里 这就是 二级指针 。 二级指针变量是存放一级指针变量地址的 代码案例1 int main() {int a 10;int* pa a;//pa是指针变量一级指针变量int* * ppa pa;//ppa指针变量二级指针变量**ppa 20;//*ppa得出pa--**ppa*paaprintf(%d, a);return 0; }运行结果 *ppa 通过对ppa中的地址进行解引用这样找到的是 pa *ppa 其实访问的就是 pa**ppa 先通过 *ppa 找到 pa ,然后对 pa 进行解引用操作 *pa 那找到的是 a . 代码案例2 7.指针数组 指针数组是指针还是数组 是数组。是存放指针的数组。 数组我们已经知道整形数组字符数组。 int arr1[5]; char arr2[5] 指针数组 int* arr3[5]; 代码案例 int main() {int arr1[] { 1,2,3,4,5 };int arr2[] { 1,2,3,4,5 };int arr3[] { 1,2,3,4,5 };int* arr[] { arr1,arr2,arr3 };int i 0;for (i 0; i 3; i){int j 0;for (j 0; j 5; j){printf(%d, arr[i][j]);}printf(\n);}return 0; }运行结果 不知不觉指针初阶以告一段落。通读全文的你肯定收获满满让我们继续为C语言学习共同奋进。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript零基础入门速通(完整) - 指南

JavaScript零基础入门速通(完整) - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

企业为什么做平台网站企业网站建设的实验报告

准备工作 这部分其实在谷歌或者百度上搜索下就可以完成的,可是我就是想再啰嗦一遍,说不定有比我更懒的同学呢哈哈~ 第一步 Python的安装配置 打开官网: https://www.python.org/downloads/ 目前官网上已经更新到3.6.1啦(这更新速度我是服的&…

完整教程:Nginx反向代理核心原理揭秘

完整教程:Nginx反向代理核心原理揭秘pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

详细介绍:五大关系数据库(sqlserver、mysql、oracle、pgsql、sqlite)的对象名称和转义字符

详细介绍:五大关系数据库(sqlserver、mysql、oracle、pgsql、sqlite)的对象名称和转义字符2025-10-02 10:17 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !importa…

@RequestParam 什么时候可以省略?

参数名一致时 当HTTP请求中的参数名与控制器方法参数名完全一致时,@RequestParam可省略。 非必需参数 当请求参数为非必需(即允许未传递该参数时),可通过设置@RequestParam(required=false)或省略注解,此时即使未…

做全景效果图的网站wordpress适应ie6

《“爱读书”--给你讲技术》,我来看书,你来进步,让我们开始吧!本书简介书名为《轻量级JavaEE企业应用实战》,是本人在学习JavaEE框架的时候阅读的第一本书,本书对于框架及相关基础知识讲述的比较详细和浅显…

段页式管理方式

分段分页管理中最大的优缺点优点 缺点分页管理 内存空间利用率高,不会产生外部碎片,只会有少量的页内碎片 不方便按照逻辑模块实现信息的共享和保护分段管理 很方便按照逻辑模块实现信息的共享和保护 如果段长过大,…

网站建设与单位干部作风的关系网站竞价推广都有哪些

有些粉丝,希望对自定义业务中,驳回到发起人进行处理,比如可以重新进行发起流程,下面就给出一种方式,当然不一定是最好的方式,只是提供一种参考而已,以后可以考虑动态根据流程状态或节点信息进行…

推进电子设计革新:为什么模拟仿真正是核心助力?

在高速发展的电子设计领域,模拟仿真已成为现代工程师的「得力助手」,它不仅能快速验证设计,还能显著提升流程效率与质量。1、仿真的三大优势:提前预见,精准优化,高效迭代 错误无处遁形 仿真能在设计实施前及时暴…

河北网站seo策划公司变更地址需要多少钱

T2-简单 MST题解 题意 设 ω ( x ) \omega(x) ω(x)为 x x x的质因数所构成的集合大小; 给两个正整数 l l l r r r,图上有 r − l 1 r-l1 r−l1个点,为 l , l 1 , l 2 , ⋯ , r − 2 , r − 1 , r l,l1,l2,\cdots,r-2,r-1,r l,l1,l2,…

网站域名 格式怎么做学校网站和微信公众号

日常工作中,经常会用到FTP,一般情况下,FTP站点在IE中(尤其是IE7以后版本)打开,默认都不是以文件夹视图方式打开的,这时IE也会给你提示“若要在 Windows 资源管理器中查看此 FTP 站点&#xff0c…

完整教程:深度解析ZStack Cloud v5.4.0 LTS 基础架构三大核心突破

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:精读C++20设计模式:结构型设计模式:装饰器模式

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

*和 内存和地址 实例代码

#include <bits/stdc++.h> using namespace std; int main(){int number=42;int *ptr=&number;//ptr 存储 number 的地址 cout<<"变量值:"<<number<<endl; //42cout&l…

应用安全 --- 安卓加固 之 IPC

应用安全 --- 安卓加固 之 IPC应用安全 --- 安卓加固 之 IPC 会有一个调用者和被调用者,我们frida只能hook其中一个,无法获取全貌### 为什么看不到真实调用者信息?核心原因 :你看到的是一个 Binder IPC跨进程调用…

深入解析:前端开发,iframe 相关经验总结

深入解析:前端开发,iframe 相关经验总结pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

事业单位网站建设费入什么科目网站由谁备案

以下是一个使用DefaultsKit库的简单爬虫程序&#xff0c;用于爬取音频。代码中使用了https://www.duoip.cn/get_proxy的API获取代理服务器。 import Foundation import DefaultsKit ​ let url "https://www.douban.com/music" // 目标网站URL let proxyUrl "…

超市如何建立网站免费行情网站

文章目录 摘要Abstract文献阅读题目引言创新点方法利用长短期记忆网络学习时空演化特征构建用于气象辅助信息编码的堆叠自编码器使用多任务学习发现全市通用模式 模型实验数据集评估准则实验结果 深度学习Self-attentionself-Attention由来self-attention原理self attention代码…

寻找东莞微信网站建设三只松鼠软文范例500字

文章目录 0 前言1\. 目标检测概况1.1 什么是目标检测&#xff1f;1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 毕业设计…