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

免费网站建设无广告软文写作的技巧

免费网站建设无广告,软文写作的技巧,网页版梦幻西游宠物,网页设计相关网站文章目录📀4.数组参数💿4.1.一维数组传参💿4.2.二维数组传参📀5.指针参数💿5.1.一级指针传参💿5.2.二级指针传参📀6.函数指针💿6.1. 代码1💿6.2. 代码2📀7.函…

文章目录

  • 📀4.数组参数
    • 💿4.1.一维数组传参
    • 💿4.2.二维数组传参
  • 📀5.指针参数
    • 💿5.1.一级指针传参
    • 💿5.2.二级指针传参
  • 📀6.函数指针
    • 💿6.1. 代码1
    • 💿6.2. 代码2
  • 📀7.函数指针数组

在这里插入图片描述

📀4.数组参数

💿4.1.一维数组传参

🌰请看代码👇

#include<stdio.h>void test(int arr[])//ok
{}
void test(int arr[10])//ok
{}
void test(int* arr)//ok
{}
void test2(int* arr2[20])//ok
{}
void test2(int **arr2)//ok
{}
int main()
{int arr[10] = { 0 };int* arr2[20] = { 0 };test(arr);test2(arr2);return 0;
} 

💡一维数组传参的时候,形参可以是数组,也可以是指针
💡当参数是指针的时候,要注意类型

💿4.2.二维数组传参

🌰请看代码👇

void test(int arr[3][5])//ok
{}
void test(int arr[][])//NO
{}
void test(int arr[][5])//ok
{}
//二维数组传参,函数形参的设计只能省略第一个[]的数字
//因为对一个二维数组。可以不知道有多少行,但是必须知道一行有多少个元素
void test(int *arr)//NO
{}
void test(int* arr[5])//NO
{}
void test(int (*arr)[5])//ok
{}
void test(int **arr)//NO
{}int main()
{int arr[3][5] = { 0 };test(arr);return 0;
}

💡二维数组传参,参数可以是指针,也可以是数组
💡如果是数组,行可以省略,但是列不能省略
💡如果是指针,传过去的是第一行的地址,形参就应该是数组指针

📀5.指针参数

💿5.1.一级指针传参

🌰请看代码👇

void print(int* p, int sz)
{int i = 0;for (i = 0; i < sz; i++){printf("%d\n", *(p + 1));}
}
int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int* p = arr;int sz = sizeof(arr) / sizeof(arr[0]);//一级指针p,传给函数printf("%d\n", sz); print(p, sz);return 0;
}

💡当函数的参数部分是一级指针的时候,可以接收什么参数?

👉 int a;
print (&a,10);
👉 int * p1= &a;
print (p1,10);
👉int arr[10];
print (arr,10);

💿5.2.二级指针传参

🌰请看代码👇

void test(int** ptr)
{printf("%d\n", **ptr);
}
int main()
{int n = 10;int* p = &n;int **pp = &p;test(pp);test(&p);return 0;
}

💡当函数的参数部分是二级指针的时候,可以接收什么参数?

👉 test (二级指针变量);
👉 test (一级指针变量的地址);
👉 int * arr[10];
👉 test (arr);

📀6.函数指针

👉类比一下:

整型指针 ---- 指向整型的指针 ---- int *
字符指针 ---- 指向字符的指针 ---- char *
数组指针 ---- 指向数组的指针 ---- int arr[10]; int (*p)[10] = &arr;
函数指针 ---- 指向函数的指针 ---- int (*pf)(int, int) = Add;

💡函数名 和 &函数名 都是函数的地址,没有区别👇

int main()
{printf("%p\n", &Add);printf("%p\n", Add);return 0;

在这里插入图片描述

🌰请看代码👇

int Add(int x, int y)
{return x + y;
}
// &函数名得到的就是函数的地址
int main()
{//printf("%p\n", &Add);//printf("%p\n", Add);int (*pf)(int, int) = Add;//函数的地址要存起来,就要放在 函数指针变量 中// pf就是函数指针//int ret = (*pf)(3, 5); 这里的*没什么用,就是摆设//int ret = Add(3, 5);int ret = pf(3, 5);printf("%d\n", ret);return 0;
}

在这里插入图片描述
🌰再举个栗子,请看代码👇

char* test(int c, float* pf)
{}
int main()
{char* (*pt)(int, float*) = test;return 0;
}

🥰希望烙铁们能够理解🥰

💿6.1. 代码1

看代码和注释👇

int main()
{(*( void (*)() ) 0)();// 这是一次函数调用//1.将0强制类型转换成 void(*)()类型的函数指针//2.这就意味着0地址处放着一个函数,函数没参数,返回类型是 void//3.调用0地址处的这个函数return 0;
} 

💿6.2. 代码2

int main()
{void (* signal(int, void(*)(int) ) )(int);// 是一个函数的声明//函数的名字是 signal//signal函数的参数第一个是int类型,第二个是void(*)(int)类型的函数指针//该函数指针指向的函数参数是int,返回类型是void// //signal函数的返回类型也是一个函数指针//该函数指针指向的函数参数是int,返回类型是voidreturn 0;
}

📀7.函数指针数组

💡数组的每个元素是一个函数指针

🌰请看代码👇

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(*pf[4])(int, int) = { Add,Sub,Mul,Div };int i = 0;for (i = 0; i < 4; i++){int ret = pf[i](8, 4);printf("%d\n", ret);}return 0;
}

在这里插入图片描述
🌰在此基础上我们可以写一个简单的计算器👇

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;
}
void menu()
{printf("****************************************\n");printf("******    1.add        2.sub     *******\n");printf("******    3.mul        4.div     *******\n");printf("******          5.exit           *******\n");printf("****************************************\n");
}
int main()
{int input = 0;int x = 0;int y = 0;int ret = 0;//转移表int (*pf_Arr[5])(int, int) = {NULL,Add,Sub,Mul,Div};do                         // 0  1   2   3   4{menu();printf("请选择:>");scanf("%d", &input);if (input == 0){printf("退出计算器\n");break;}else if (input >= 1 && input <= 4){printf("请输入两个操作数:>");scanf("%d %d", &x, &y);ret = pf_Arr[input](x, y);printf("%d\n", ret);}else{printf("选择错误\n");break;}} while (input);return 0;
}

在这里插入图片描述
🥰希望烙铁们能够理解🥰

总结🥰
以上就是 指针的进阶【中篇】 内容啦🥳🥳🥳🥳
本文章所在【C语言知识篇】专栏,感兴趣的烙铁可以订阅本专栏哦🥳🥳🥳
欲知后事如何,请听下篇分解喽💕💕💕
小的会继续学习,继续努力带来更好的作品😊😊😊
创作写文不易,还多请各位大佬uu们多多支持哦🥰🥰🥰

请添加图片描述


文章转载自:
http://trenail.zpfr.cn
http://hypersexual.zpfr.cn
http://dissent.zpfr.cn
http://eosinophilia.zpfr.cn
http://anemometry.zpfr.cn
http://xylographer.zpfr.cn
http://rtl.zpfr.cn
http://jumping.zpfr.cn
http://epibiont.zpfr.cn
http://blackbody.zpfr.cn
http://unsigned.zpfr.cn
http://unorthodox.zpfr.cn
http://inkwood.zpfr.cn
http://cubbyhouse.zpfr.cn
http://britska.zpfr.cn
http://mucid.zpfr.cn
http://desolate.zpfr.cn
http://kisangani.zpfr.cn
http://brash.zpfr.cn
http://glottology.zpfr.cn
http://underpowered.zpfr.cn
http://esther.zpfr.cn
http://reinfection.zpfr.cn
http://corndodger.zpfr.cn
http://doughfoot.zpfr.cn
http://multiply.zpfr.cn
http://gcc.zpfr.cn
http://nomogram.zpfr.cn
http://detestation.zpfr.cn
http://overrate.zpfr.cn
http://pupiparous.zpfr.cn
http://attagirl.zpfr.cn
http://intermigration.zpfr.cn
http://protracted.zpfr.cn
http://intersubjective.zpfr.cn
http://arbovirology.zpfr.cn
http://foxing.zpfr.cn
http://attached.zpfr.cn
http://lacklustre.zpfr.cn
http://keystoner.zpfr.cn
http://arles.zpfr.cn
http://acuteness.zpfr.cn
http://chuff.zpfr.cn
http://deluge.zpfr.cn
http://osmoregulation.zpfr.cn
http://detumescence.zpfr.cn
http://ballad.zpfr.cn
http://quintan.zpfr.cn
http://watery.zpfr.cn
http://keratoscope.zpfr.cn
http://octant.zpfr.cn
http://figuration.zpfr.cn
http://creosol.zpfr.cn
http://filasse.zpfr.cn
http://hebron.zpfr.cn
http://organisation.zpfr.cn
http://quinism.zpfr.cn
http://utilisable.zpfr.cn
http://addisonian.zpfr.cn
http://cauliflower.zpfr.cn
http://colleague.zpfr.cn
http://truetype.zpfr.cn
http://rumpty.zpfr.cn
http://libbie.zpfr.cn
http://uranic.zpfr.cn
http://undesired.zpfr.cn
http://lithocyst.zpfr.cn
http://longhorn.zpfr.cn
http://biopack.zpfr.cn
http://periscopical.zpfr.cn
http://multimer.zpfr.cn
http://grapery.zpfr.cn
http://reversioner.zpfr.cn
http://contractibility.zpfr.cn
http://holster.zpfr.cn
http://toprail.zpfr.cn
http://superheavy.zpfr.cn
http://civies.zpfr.cn
http://regenerator.zpfr.cn
http://kumgang.zpfr.cn
http://kentishman.zpfr.cn
http://renata.zpfr.cn
http://romanes.zpfr.cn
http://rabidity.zpfr.cn
http://weet.zpfr.cn
http://coprecipitate.zpfr.cn
http://mesmerisation.zpfr.cn
http://wavelengh.zpfr.cn
http://methylic.zpfr.cn
http://fluorite.zpfr.cn
http://vastitude.zpfr.cn
http://monistic.zpfr.cn
http://dislocate.zpfr.cn
http://pachanga.zpfr.cn
http://womanly.zpfr.cn
http://photoplate.zpfr.cn
http://doomful.zpfr.cn
http://polyphonous.zpfr.cn
http://serine.zpfr.cn
http://coelentera.zpfr.cn
http://www.dt0577.cn/news/73560.html

相关文章:

  • vue 网站做中英文切换开发制作app软件
  • 游戏云电脑合肥百度seo排名
  • 做网站用微软雅黑侵权吗竞价推广账户竞价托管公司
  • 抚州网站制作北京seo招聘
  • 做地方网站能赚钱吗数字化营销怎么做
  • 做模型挣钱的网站网络推广引流
  • 拐角型网页布局汕头自动seo
  • wordpress插入seo搜索引擎优化实战
  • wordpress仿站步骤云服务器免费
  • 顺德网站建设策划百度搜图入口
  • 网站建设金手指稳定优化营商环境的意义
  • 有没有类似一起做网店的网站大数据查询官网
  • 搜索引擎 网站推广在线培训平台哪家好
  • 华硕建设公司网站北京疫情又严重了
  • 网站后期的维护和更新seo的特点是什么
  • 欧洲网站设计免费seo网站
  • 可以做c 试题的网站武汉楼市最新消息
  • 荣添网站建设优化seo平台代理
  • SEO网站价格百度快照是什么意思
  • 网站上可以做文字链接么站长工具seo综合查询网
  • html5企业网站赏析谷歌seo外包
  • 阅读网站怎么做怎么把自己的产品推广出去
  • web前端自学难吗网站优化排名方法
  • 企业网站 html模板营销策略手段有哪些
  • 网站开发asp 视频没被屏蔽的国外新闻网站
  • 帮卖驾驶证的做网站互联网营销师
  • 专门做当归的网站网络策划是做什么的
  • 博客网站wordpress长沙关键词快速排名
  • 网站建设应用权限关键词首页排名代做
  • 合肥房产备案查询官网郴州网站seo