网站后台 登录界面模板 远吗北京手机网站设计报价

news/2025/9/22 16:15:37/文章来源:
网站后台 登录界面模板 远吗,北京手机网站设计报价,ui设计做兼职的网站有哪些,快三彩票网站开发指针基础知识#xff1a;C语言学习笔记之指针#xff08;一#xff09;-CSDN博客 目录 字符指针 代码分析 指针数组 数组指针 函数指针 代码分析#xff08;出自《C陷阱和缺陷》#xff09; 函数指针数组 指向函数指针数组的指针 回调函数 qsort() 字符指针 一…指针基础知识C语言学习笔记之指针一-CSDN博客 目录 字符指针 代码分析 指针数组 数组指针 函数指针 代码分析出自《C陷阱和缺陷》 函数指针数组 指向函数指针数组的指针 回调函数 qsort() 字符指针 一般用法 特殊用法 上述代码的本质是把字符串 hello bit. 的首字符的地址放到了pstr中。因为hello bit.是一个常量字符串是存放在代码段的数据所以不能被修改因此要用const 修饰来防止权限的放大。 代码分析 这里str3和str4指向的是一个同一个常量字符串。C/C会把常量字符串存储到单独的一个内存区域当几个指针指向同一个字符串的时候他们实际会指向同一块内存。但是用相同的常量字符串去初始化不同的数组的时候就会开辟出不同的内存块。所以str1和str2不同str3和str4相同。 指针数组 指针数组是一种数组数组内的每个元素的类型是指针类型。 用指针数组模拟实现一个二维数组 #include stdio.hvoid print(int** arr, int row, int col) {int i 0;for (i 0; i row; i){int j 0;for (j 0; j col; j){printf(%d , *(*(arr i) j)); //等价于 printf(%d , arr[i][j]);//printf(%d , arr[i][j]);}printf(\n);}} int main() {int arr1[] { 1, 2, 3, 4, 5 };int arr2[] { 2, 3, 4, 5, 6 };int arr3[] { 3, 4, 5, 6, 7 };int* arr[] { arr1, arr2, arr3 };print(arr, 3, 5);return 0; } 注模拟的二位数组在内存中并不一定连续存放因此它不是真的二维数组。 数组指针 我们已经熟悉   整形指针 int * pint; 能够指向整形数据的指针。  浮点型指针 float * pf; 能够指向浮点型数据的指针。         同理数组指针就是指向数组的指针即存放数组地址的指针变量。 写一个打印二维数组的函数形参是数组指针 #include stdio.h void print_arr1(int arr[3][5], int row, int col) {int i 0;for (i 0; i row; i){int j 0;for (j 0; j col; j){printf(%d , arr[i][j]);}printf(\n);} } void print_arr2(int(*arr)[5], int row, int col) //数组指针接收 {int i 0;for (i 0; i row; i){int j 0;for (j 0; j col; j){printf(%d , *(*(arr i) j));}printf(\n);} } int main() {int arr[3][5] { 1,2,3,4,5,6,7,8,9,10 };print_arr1(arr, 3, 5);//数组名arr表示首元素的地址//但是二维数组的首元素是二维数组的第一行二维数组可以看成是一维数组的数组即二维数组的每个元素是一个一维数组//所以这里传递的arr其实相当于第一行的地址是一维数组的地址//可以数组指针来接收printf(\n);print_arr2(arr, 3, 5);return 0; } 类型分析 函数指针 函数也是有地址的顾名思义函数指针就是指向函数的指针即存放函数地址的指针变量。         函数指针类型函数返回值类型 (*指针变量名)(函数参数)。 #include stdio.h void test() {printf(hehe\n); } int main() {printf(%p\n, test);printf(%p\n, test);return 0; } 根据上述代码的执行结果我们可以看出函数名表示函数地址地址函数名也表示函数地址即 函数名 函数名所以 *函数名 * 函数名 而*函数名 函数名因此 函数名 函数名 * 函数名。 首先能存储地址就要求pfun1或者pfun2是指针那哪个是指针 答案是pfun1可以存放。pfun1先和*结合说明pfun1是指针指针指向的是一个函数指向的函数无参数返回值类型为void。pfun2先和结合表示pfun2是一个没有参数返回类型是void* 的函数。 代码分析出自《C陷阱和缺陷》 (*(void (*)())0)(); void (*signal(int , void(*)(int)))(int); 利用 typedef 简化上述代码 函数指针数组 存放函数指针的数组就叫做函数指针数组。 parr1 先和 [] 结合说明 parr1是数组数组的内容是什么呢 是 int (*)() 类型的函数指针。         函数指针数组的用途转移表 示例计算器 #include stdio.h int add(int a, int b) {return a b; } int sub(int a, int b) {return a - b; } int mul(int a, int b) {return a * b; } int div(int a, int b) {return a / b; } int main() {int x, y;int input 1;int ret 0;int(*p[5])(int x, int y) { 0, add, sub, mul, div }; //转移表while (input){printf(*************************\n);printf( 1:add 2:sub \n);printf( 3:mul 4:div \n);printf( 0:exit \n);printf(*************************\n);printf(请选择);scanf(%d, input);if ((input 4 input 1)){printf(输入操作数);scanf(%d %d, x, y);ret (*p[input])(x, y);}else if (input 0){printf(程序退出\n);break;}elseprintf(输入有误\n);printf(ret %d\n, ret);}return 0; } 指向函数指针数组的指针 顾名思义指针指向的是一个每个元素是函数指针的数组。 回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针地址作为参数传递给另一个函数当这个指针被用来调用其所指向的函数时我们就说这是回调函数。回调函数不是由该函数的实现方直接调用而是在特定的事件或条件发生时由另外的一方调用的用于对该事件或条件进行响应。回调函数是一种泛型编程思维库函数 qsort() 就运用了回调函数。 qsort() qsort()可以给任意类型整型浮点型结构体等的数据排序但是需要我们按要求提供一个比较函数。 用冒泡排序模拟实现一个类似 qsort() 的函数 #include stdio.hvoid swap(char* p1, char* p2, size_t size) //交换arr[j],arr[j1]这两个元素 {int i 0;for (i 0; i size; i){char tmp *p1;*p1 *p2;*p2 tmp;p1;p2;} }void bubble_sort(void* base, size_t num, size_t size, int (*cmp)(const void*, const void*)) {int i 0;//趟数for (i 0; i num - 1; i){int j 0;//一趟内部比较的对数for (j 0; j num - 1 - i; j){//假设需要升序cmp返回0交换if (cmp((char*)base j * size, (char*)base (j 1) * size) 0) //两个元素比较需要将arr[j],arr[j1]的地址要传给cmp{//交换swap((char*)base j * size, (char*)base (j 1) * size, size);}}} }int cmp_int(const void* p1, const void* p2) //回调函数 {return *(int*)p1 - *(int*)p2; }//测试bubble_sort 排序整型数据 void test1() {int arr[10] { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };int sz sizeof(arr) / sizeof(arr[0]);bubble_sort(arr, sz, sizeof(int), cmp_int); }struct Stu {char name[20];int age; };int cmp_stu_by_age(const void* p1, const void* p2) //回调函数 {return ((struct Stu*)p1)-age - ((struct Stu*)p2)-age; }//测试bubble_sort 排序结构体数据比较年龄 void test2() {struct Stu arr[] { {zhangsan, 20}, {lisi, 50},{wangwu, 15} };int sz sizeof(arr) / sizeof(arr[0]); bubble_sort(arr, sz, sizeof(arr[0]), cmp_stu_by_age); }int cmp_stu_by_name(const void* p1, const void* p2) //回调函数 {return strcmp(((struct Stu*)p1)-name, ((struct Stu*)p2)-name); }//测试bubble_sort 排序结构体数据比较名字 void test3() {struct Stu arr[] { {zhangsan, 20}, {lisi, 50},{wangwu, 15} };int sz sizeof(arr) / sizeof(arr[0]);printf(%d\n, sizeof(struct Stu));bubble_sort(arr, sz, sizeof(arr[0]), cmp_stu_by_name); }int main() {test1();test2();test3();return 0; }

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

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

相关文章

样板网站建设中英文网站

博主打算从0-1讲解下java基础教学,今天教学第十五篇:Java中Spring详解说明。 Spring 框架是一个广泛应用于 Java 开发的轻量级、全栈式的企业应用开发框架,它提供了众多功能强大的模块,用于简化企业级应用程序的开发。下面详细说…

珠海斗门建设局官方网站实时热点新闻事件

最近你们是否遇到注册亚马逊账号时一直遇到"内部错误"的情况?,这可能是由多种原因引起的。以下是一些可能有助于解决这个问题的步骤: 1、清除缓存和Cookie:有时浏览器缓存和Cookie中的问题可能导致网站错误。可以试试清…

外卖网站那家做的好做网站项目

远程控制软件非常之多,但小编自己用过的就那么3个:teamviewer:在家远程办公时基本上都靠它连回公司的电脑,速度快、稳定、不需要公网IP。vnc:要开启vpn才能连回公司的网络,速度够快。系统自带远程桌面&…

衡水提供网站制作公司哪家专业罗湖网站建设联系电话

作者:Wwww_来源:牛客网问简历上项目,看我用了GreenDao开源库,问为什么使用这个数据库Java:1. 抽象类和接口,问的很细而且比较灵活。还记得的有:接口中能不能有protected修饰的方法;能…

江苏省招标投标信息网福州seo推广优化

目录 前言 原理 SOME/IP 协议服务接口 SOME/IP-SD协议文档 1.概述 1

网站seo快速排名软件网络营销专业介绍

​ SSML 的语音服务实现基于万维网联合会的语音合成标记语言版本 1.0。 ​ 语音服务支持的元素可能与 W3C 标准不同。 每个 SSML 文档是使用 SSML 元素(或标记)创建的。 这些元素用于调整语音、风格、音节、韵律、音量等。 下面是 SSML 文档的基本结构…

网站站点网站开发立项

代码气味的定义 (来自维基百科): “程序源代码中任何可能表明存在更深层问题的症状。” 在Java中, 静态方法允许您在“类范围”内执行代码,而不是像成员方法这样的实例范围。 这意味着,它们依赖于类级别的变…

行业网站建设分析长春做网站多少钱

题目表示 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。 举例1: 2,4,5 总代价最小值为17 举例2: 4,1,1,4 总代…

一天一款实用的AI工具,第2期,AI摘要生成工具

本期介绍的是一款专业的AI摘要生成工具,帮你提取核心信息,助你提升阅读效率。现实问题 在信息过载的今天,有句话尤其令人共鸣: 好的摘要 = 高效传递的核心。 很多写作者、研究者或职场人都面临这样的困境: 花费大…

网站性能优化方案wordpress需要做哪些设置

本文概述PHP提供了各种功能来从文件读取数据。有多种功能允许你读取所有文件数据, 逐行读取数据以及逐字符读取数据。下面提供了可用的PHP文件读取功能。fread()fgets()fgetc()PHP读取文件-fread()PHP fread()函数用于读取文件的数据。它需要两个参数:文件资源和文件…

实用指南:数据库造神计划第十七天---索引(2)

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

邀您参加丨云栖大会中企出海技术分论坛

【云栖大会中企出海技术分论坛专场】 🌍 全球布局,技术先行!中国企业全球化正当时 🌏 2025 年 9 月 25 日 上午 9:30-12:20 📍 阿里云云栖小镇 D2-2 馆丨“ 中企出海技术分论坛” 即将启幕! 面对全球市场机遇…

汉中专业做网站wordpress选项下拉

在了解过世界最大的PHP站点,Facebook的后台技术后,今天我们来了解一个百万级PHP站点的网站架构:Poppen.de。Poppen.de是德国的一个社交网站,相对Facebook、Flickr来说是一个很小的网站,但它有一个很好的架构&#xff0…

h5案例排名轻松seo 网站推广

/任务 5 有三位老师,王老师,孙老师和小李老师, 王老师工龄最长(15年),孙老师工龄比王老师小3年, 小李老师工龄最短,是王老师和孙老师工龄和的二分之一 再除以2的余数正好是他的工龄,编写程序从控…

asp网站 攻击网站设计基本功能

当涉及到虾皮(Shopee)接口的时,我们需要注意的是虾皮提供了API供开发者使用以集成其平台功能。然而,由于API的具体细节、参数和认证机制可能会随时间变化,以下是一个简化的示例和步骤,用于说明如何与虾皮AP…

网站成立时间商家怎么入驻微信小程序

环境: windows xp sp3 工具: bjanes.2,HashCalc 这个和14题是一样的,看名字就发现都是2.0A,然后用HashCalc来计算一下MD5,发现它们的值是相同的。 如果没猜错,应该就是在14题是被放错题了。

非物质文化遗产网站怎么做网站用户反馈

一、什么是CountDownLatch CountDownLatch中count down是倒数的意思,latch则是门闩的含义。整体含义可以理解为倒数的门栓。 CountDownLatch的作用也是如此,在构造CountDownLatch(int count):的时候需要传入一个整数count,在这个…

百中搜网站建设wordpress字菜单

人在这世上是无法独自生存的。因为学校和社会都是由众多人所组成。——绫小路清隆 首先,从生物学的角度看,人类作为社会性动物,天生就具有与他人互动和合作的本能。无论是在原始社会还是现代文明中,人类都需要通过集体合作来确保生…

萧县做网站微信公众号跳转的网页怎么制作

客户介绍 某科技股份有限公司作为一家在金融科技行业有着20余年经验的公司,见证了金融科技行业的电子化、信息化、移动化和数字化的发展进程。该公司致力于为金融机构提供领先的产品和专业化服务,其业务涵盖应用软件开发、系统集成、IT服务和IT咨询服务…

压测指标和结果分析

压测指标 压测结果分析 一、数据库死锁 1、吞吐量(TPS/QPS)突然暴跌或维持低位现象:曲线图上出现断崖式下跌,或者吞吐量无论如何增加压力(并发用户数)都无法继续上升,维持在一个很低的水平。 原因:发生死锁后,…