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

南京网站制作公司怎么样公司官网在哪找

南京网站制作公司怎么样,公司官网在哪找,南昌的网站建设公司,哪个购物软件最便宜🌈个人主页:小田爱学编程 🔥 系列专栏:c语言从基础到进阶 🏆🏆关注博主,随时获取更多关于c语言的优质内容!🏆🏆 😀欢迎来到小田代码世界~ &#x…

🌈个人主页:小田爱学编程
🔥 系列专栏:c语言从基础到进阶
🏆🏆关注博主,随时获取更多关于c语言的优质内容!🏆🏆


😀欢迎来到小田代码世界~
😁 喜欢的小伙伴记得一键三连哦 ૮(˶ᵔ ᵕ ᵔ˶)ა

一.解决疑问

二.转移表

三.回调函数

 四.qsort函数

 1.排序整形数据

 2.排序结构数据

3.qsort模拟实现

五.sizeof和strlen的对比

六.注意


一.解决疑问

    🌏一次函数调用,把0这个整数值,强制类型转换成一个函数的地址,这个函数没有参数,返             回类型是void去调用0地址处的函数

   🌏signal是一个函数

       signal函数的参数有2个,第一个是int类型   

      第二个是函数指针类型,该指针指向的函数参数是int,返回类型是void

      signal函数的返回类型是这种类型的void(*)(int)函数指针

      该指针指向的函数参数是int,返回类型是void

二.转移表

 函数指针数组的用途:转移表

#define _CRT_SECURE_NO_WARNINGS 1/*实现一个计算器
这个计算器能够计算整数的:加法、减法、乘法、除法
& | ^ << >> && ||*/
void menu()
{printf("******************************\n");printf("****  1. add     2. sub   ****\n");printf("****  3. mul     4. div   ****\n");printf("****  0. exit             ****\n");printf("******************************\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;int x = 0;int y = 0;int ret = 0;do{menu();printf("请选择:");scanf("%d", &input);switch (input){case 1:printf("请输入两个操作数:");scanf("%d %d", &x, &y);ret = Add(x, y);printf("%d\n", ret);break;case 2:printf("请输入两个操作数:");scanf("%d %d", &x, &y);ret = Sub(x, y);printf("%d\n", ret);break;case 3:printf("请输入两个操作数:");scanf("%d %d", &x, &y);ret = Mul(x, y);printf("%d\n", ret);break;case 4:printf("请输入两个操作数:");scanf("%d %d", &x, &y);ret = Div(x, y);printf("%d\n", ret);break;case 0:printf("退出计算器\n");break;default:printf("选择错误,重新选择\n");break;}} while (input);return 0;
}

三.回调函数

回调函数就是⼀个通过函数指针调⽤的函数。
如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数
时,被调⽤的函数就是回调函数。回调函数不是由该函数的实现⽅直接调⽤,⽽是在特定的事件或条件发⽣时由另外的⼀⽅调⽤的,⽤于对该事件或条件进⾏响应。

 四.qsort函数

 1.排序整形数据

#include <stdio.h>
//qosrt函数的使⽤者得实现⼀个⽐较函数
int int_cmp(const void * p1, const void * p2)
{
return (*( int *)p1 - *(int *) p2);
}
int main()
{
int arr[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };
int i = 0;
qsort(arr, sizeof(arr) / sizeof(arr[0]), sizeof (int), int_cmp);
for (i = 0; i< sizeof(arr) / sizeof(arr[0]); i++)
{
printf( "%d ", arr[i]);
}
printf("\n");
return 0;
}

 2.排序结构数据

struct Stu //学⽣
{
char name[20]; //名字
int age; //年龄
};
//假设按照年龄来⽐较
int cmp_stu_by_age(const void* e1, const void* e2)
{
return ((struct Stu*)e1)->age - ((struct Stu*)e2)->age;
}
//strcmp - 是库函数,是专⻔⽤来⽐较两个字符串的⼤⼩的
//假设按照名字来⽐较
int cmp_stu_by_name(const void* e1, const void* e2)
{
return strcmp(((struct Stu*)e1)->name, ((struct Stu*)e2)->name);
}
//按照年龄来排序
void test2()
{
struct Stu s[] = { {"zhangsan", 20}, {"lisi", 30}, {"wangwu", 15} };
int sz = sizeof(s) / sizeof(s[0]);
qsort(s, sz, sizeof(s[0]), cmp_stu_by_age);
}
//按照名字来排序
void test3()
{
struct Stu s[] = { {"zhangsan", 20}, {"lisi", 30}, {"wangwu", 15} };
int sz = sizeof(s) / sizeof(s[0]);
qsort(s, sz, sizeof(s[0]), cmp_stu_by_name);
}
int main()
{
test2();
test3();
return 0;
}

3.qsort模拟实现

#include <stdio.h> int int_cmp(const void * p1, const void * p2)
{
return (*( int *)p1 - *(int *) p2);
}
void _swap(void *p1, void * p2, int size)
{
int i = 0;
for (i = 0; i< size; i++)
{
char tmp = *((char *)p1 + i);
*(( char *)p1 + i) = *((char *) p2 + i);
*(( char *)p2 + i) = tmp;
}
}
void bubble(void *base, int count , int size, int(*cmp )(void *, void *))
{
int i = 0;
int j = 0;
for (i = 0; i< count - 1; i++)
{
for (j = 0; j<count-i-1; j++)
{
if (cmp ((char *) base + j*size , (char *)base + (j + 1)*size) > 0)
{
_swap(( char *)base + j*size, (char *)base + (j + 1)*size, size);
}
}
}
}
int main()
{
int arr[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };
int i = 0;
bubble(arr, sizeof(arr) / sizeof(arr[0]), sizeof (int), int_cmp);
for (i = 0; i< sizeof(arr) / sizeof(arr[0]); i++)
{
printf( "%d ", arr[i]);
}
printf("\n");
return 0;

五.sizeof和strlen的对比

六.注意

1. sizeof(数组名),这⾥的数组名表⽰整个数组,计算的是整个数组的⼤⼩。
2. &数组名,这⾥的数组名表⽰整个数组,取出的是整个数组的地址。
3. 除此之外所有的数组名都表⽰⾸元素的地址

👍燃烧的指针终于完结散花喽,如果想知道下次的内容,请持续关注🥇系列专栏:c语言从基础     到进阶

🎁🎁🎁今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是我前进的动力!

http://www.yayakq.cn/news/401801/

相关文章:

  • 郑州春蕾网站建设服装网站首页设计
  • html5做网站导航页重庆网站查询
  • 建站推广免费律师咨询
  • 门户网站 管理系统t和p在一起怎么做网页
  • 嘉兴网站开发公司商业网站开发 说课
  • 房地产网站建设提案全国建筑工程企业资质查询平台
  • 无锡阿凡达建设网站描述如何写利于优化
  • 宁波网站建设公司哪家好湖南网站开发公司
  • 手机网站pc网站珠海斗门网站建设
  • 儿童玩具商城网站建设qq空间电脑版
  • 苏州 手机网站微信公众 wordpress
  • 桥梁建设杂志有假网站吗广告公司网站建设的定位
  • 电商网站的建设的主要目的网站制作源码版权
  • 单页加盟网站模板Md5(Wordpress)解密
  • 动力无限做网站设计手机网站建设
  • 宁波自适应网站建设网站HTML怎么做链接
  • 太平桥网站建设网站域名批量查询
  • 电脑做网站主机iis网站筛选器被挂马
  • 美工做网站尺寸多少电子商务网站建设品牌
  • 网站建设方案的所属行业是建设网站二级子页打不开
  • 权重高的网站是几查企业的app软件 排名
  • 做办公室的网站大型门户网站建设价格
  • 品牌运营具体做什么南昌seo网站
  • 成都网站建设电话咨询电子商务是建网站
  • 门户网站建设采购手机网站建设规划书
  • 网站开发合同样本龙之网官网
  • 网站的logo怎么换昆明网站建设首选互维
  • 昆明网站如何制作推广费用一般多少钱
  • 做网站需要具备什么要求农村自建房设计图效果图
  • 能够给上市公司做网站意味着什么做交易平台的网站需要哪些技术