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

交通局网站模板南宁会制作网站的技术人员

交通局网站模板,南宁会制作网站的技术人员,05网学霸,建一个网页网站文章目录 前言一、函数的指针二、函数指针运用 1函数名地址2指针变量调用函数3指向函数的指针变量做函数参数二、返回指针值的函数总结 前言 如果在程序中定义了一个函数#xff0c;在编译时会把函数的源代码转换为可执行代码并分配一段空间。这段空间有一个起始地址#xf…  文章目录 前言一、函数的指针二、函数指针运用 1函数名地址2指针变量调用函数3指向函数的指针变量做函数参数二、返回指针值的函数总结 前言 如果在程序中定义了一个函数在编译时会把函数的源代码转换为可执行代码并分配一段空间。这段空间有一个起始地址也称为函数的入口地址。每次调用函数时都从该地址入口开始执行此函数代码。  一、函数的指针 函数名就是函数的起始地址就是函数的指针。 二、函数指针运用 1.函数名地址 代码如下示例 int add(int x, int y) {return x y; } int main() {printf(%p, add);//打印函数地址return 0; } 打印结果为00007FF6BC9013D9 是函数地址由此可见函数名是一个地址定义指针变量可以将函数名直接赋给指针变量。 2.指针变量调用函数 代码如下示例 void swap(int*p1, int*p2) {int tmp *p1;*p1 *p2;*p2 tmp; } int main() {int arr[] { 1,2,3,4,5 };//swap(arr[1], arr[4]);  void (*pc)(int*, int*) swap;//定义指向函数的指针变量(*pc)(arr[1], arr[4]);//用指针变量调用swap函数int i 0;for (i 0; i 5; i){printf(%d , arr[i]);}return 0; } 该处可以看出swap函数的调用指针*pc对应函数名括号后面调用一样。 但是得注意定义指针变量指向函数名(也就是函数地址时定义的类型应与函数返回值类型一致后面括号里的量也应与被调函数的定义保持一致。 在给指针变量赋值时只需给出函数名无需给出函数参数。void (*pc)(int*, int*) swap; 用指针变量调用函数时只需用*pc代替函数名在*p)的括号根据需要写上实参 函数指针变量不能进行算数运算 用函数名调用函数只能调用所指定的一个函数但是用指针变量调用函数可以根据不同情况先后调用不同函数。 注意定义的pc指针只能指向参数类型为int、int返回类型为void的函数。 3、用指向函数的指针做函数参数 指向函数的指针,把函数地址作为参数传递给其它函数  用指向函数的指针做函数参数这个函数的返回值类型是一个指针参数是函数指针的参数 设计一个计算器实现加减乘除 代码如下 void print() {printf(********************************\n);printf(***** 1.add 2.sub **********\n);printf(***** 3.mul 4.div **********\n);printf(***** 0.esc ***************\n); } int add(int x, int y) {return x y; } int sub(int x, int y) {return x - y; } int mul(int x, int y) {return x * y; } int div(int x, int y) {return x / y; } int main() {int a 0;int b 0;int ret 0;int input 0;print();scanf(%d, input);switch (input){case 1:printf(请输入两个数\n);scanf(%d%d, a, b);retadd(a, b);printf(%d, ret);break;case 2:printf(请输入两个数\n);scanf(%d%d, a, b);ret sub(a, b);printf(%d, ret);break;case 3:printf(请输入两个数\n);scanf(%d%d, a, b);ret mul(a, b);printf(%d, ret);break;case 4:printf(请输入两个数\n);scanf(%d%d, a, b);ret div(a, b);printf(%d, ret);break;default:printf(输入错误);break;}return 0; } 这里在case里反复重复的内容太多代码不够简洁这里add、sub、mul、div的函数参数和返回值都是同样类型的因此可定义一个指针即*p用来指向这几个函数再定义一个指针函数参数为指向这几个函数的指针即*p 代码如下  void col(int(*p)(int,int)) {int a 0;int b 0;int ret 0;printf(请输入两个数\n);scanf(%d%d, a, b);ret (*p)(a, b);printf(%d, ret); }void print() {printf(********************************\n);printf(***** 1.add 2.sub **********\n);printf(***** 3.mul 4.div **********\n);printf(***** 0.esc ***************\n); } int add(int x, int y) {return x y; } int sub(int x, int y) {return x - y; } int mul(int x, int y) {return x * y; } int div(int x, int y) {return x / y; } int main() {int input 0;print();scanf(%d, input);switch (input){case 1:col(add);break;case 2:col(sub);break;case 3:col(mul);break;case 4:col(div);break;default:printf(输入错误);break;}return 0; } 这样的程序更简洁更具可读性。 三、返回指针值的函数 函数返回值是一个地址或者指针。 字符串拷贝函数  char* string_copy(char* str1, char* str2) {char* start str2;while (*str2 *str1);return start; } int main() {char arr1[] abcdef;char arr2[20] { 0 };char* ret string_copy(arr1, arr2);printf(% s\n, ret);return 0; } 如上函数的返回值是一个指针这里将函数返回值赋给ret这个指针通过指针指向的地址找到并打印字符如果解引用找到的会是字符数组的首地址的内容只能打印“a” 在这里%s, 传参ret是一个地址打印该地址对应的字符串遇到\0停止。 在C语言中找到地址就相当于找到了值。 找学生序号对应的分数 int *score(int(*p)[3], int n) {return *(p n); } int main() {int n 0;int arr[][3] { {1,2,3},{4,5,6},{7,8,9} };int i 0;scanf(%d, n);int* p score(arr, n);for (i 0; i 3; i){printf(%d, *(p i));}return 0; } 这个地方的解引用是二维数组某行的首地址也就是找到地址对应的行依次打印数字 总结 未完待续...
http://www.dnsts.com.cn/news/23800.html

相关文章:

  • 甘肃建设厅网站二级建造师报名时间外贸网站程序
  • 烟台网站开发百度推广运营
  • 海南门户网站开发公司毕业设计网站用什么做
  • 宝安网站建设推广茶陵网站建设
  • 移动端网站的优势岳阳网站设计改版
  • wordpress轮播全屏百度seo公司整站优化软件
  • 网站建设季度考核评价工作总结京东网上商城购物
  • 建个企业网站一年需要多少钱企业网站建设的策划书
  • 怎么做一个电商网站吗网站开发课程软件
  • 怎样在文章后做网站链接个人网站花多少钱
  • 房地产网站案例网络营销工具的作用
  • 网站屏蔽收录物业建设网站
  • 怎么做关于狗的网站网站 dns 解析 手机访问设置
  • 企业移动网站品牌商业网站是什么意思
  • jquery 单页网站logo免费下载网站
  • 怎么添加网站背景音乐网站维护与建设ppt
  • 前端入职后很痛苦seo网站推广经理
  • 网页网站公司如何做备份手机网站分享js代码
  • 成都网站建设上云赣州做网站jx25
  • 做网站 江门公司网站建立费用
  • 深圳易捷网站建设在附近找工作
  • 手机端网站尺寸规范seo网站优化快速排名软件
  • 昆明建设网站电商网站 外包
  • 沈阳微网站制作如何设计小程序
  • ps免费模板网站wordpress熊掌号插件
  • 企业多语言网站开发做网站需要多少钱啊
  • 做网站菏泽美食网站建设规划书
  • c2c电商网站有哪些wordpress 最新发展
  • 广州网站vi设计报价房产手机网站开发
  • 潼南国外免费自助建站网站建设费用的请示