首页 > 其他分享 >关于指针:

关于指针:

时间:2023-09-22 18:33:18浏览次数:39  
标签:int void Cal break 关于 数组 printf 指针

1.voidp:p可以接受任意类型的地址。void类型的指针不能进行解引用操作。

2.指针数组: int p[5];是一个数组,每个元素是int 

数组指针: int (*p)[5]:是一个指针,指向一个5个元素类型是int的数组。

函数指针:void (*p)(int,int):指向一个void类型参数 是(int,int)的函数。

3.


void add(int x, int y) {
	printf("%d\n", x + y);
}
void del(int x, int y) {
	printf("%d\n", x - y);
}
void mul(int x, int y) {
	printf("%d\n", x * y);
}
void div(int x, int y) {
	printf("%d\n", x / y);
}

void Cal(void (*p)(int,int)) {
	int x = 0;
	int y = 0;
	printf("请输入2个数");
	scanf("%d%d", &x,&y);
	p(x,y);
}

int input = 0;
	do
	{
		printf("请输入1个数");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			Cal(add);
			break;
		case 2:
			Cal(del);
			break;
		case 3:
			Cal(mul);
			break;
		case 4:
			Cal(div);
			break;
		default:
			printf("输入错误");
			break;
		}
	} while (input);

4.学习库函数qsort(数组地址,数组大小,数组元素大小,cmp(比较函数))排序任意数组类型。

!!注意cmp比较函数是规定写法:int cmp(const void* e1,const void* e2)。

例子qsort排序结构体:

typedef struct stuent
{
	char name[20];
	int age;
}stu;

int cmp(const void* e1, const void* e2) {
	return  ((stu*)e1)->age - ((stu*)e2)->age;
}


----------main

stu s[3] = { {"张三",22},{"李四",21},{"王五",20} };
int sz = sizeof(s) / sizeof(s[0]);
qsort(s, sz, sizeof(s[0]),cmp);
for (int i = 0; i < sz; i++)
{
	printf("%s", s[i].name);
	printf("%d\n", s[i].age);

}





标签:int,void,Cal,break,关于,数组,printf,指针
From: https://blog.51cto.com/u_14234172/7569969

相关文章

  • 关于表单快速开发低代码技术平台的内容介绍
    运用什么样的表单快速开发软件平台可以实现高效率创收?随着科技的进步和飞速发展,专业的低代码技术平台已经走入了很多企业的办公职场中,它们灵活、轻量级、优质、高效、易维护等优势特点,可以高效助力广大企业提质增效,并且利用数据资源,实现流程化办公。什么是低代码技术平台?其实,低代......
  • c语言双指针法--原地删除数组中的元素
     27.移除元素-力扣(LeetCode) intremoveElement(int*nums,intnumsSize,intval){intleft=0;intright=0;while(right<numsSize){if(nums[right]!=val){nums[left]=nums[right];left++;}......
  • 关于LXD容器出现OOM错误,以及添加内存条后容器无法启动的解决
    目前实验室的GPU服务器有4张3090显卡,但是只有32GB内存,频繁出现OOM(OutOfMemory)错误,因此博主通过添加大swap文件暂时缓解该问题,并采购内存条以解决该问题,同时解决添加内存条后lxc报错的问题。问题描述某次查看内核日志时,发现某容器出现了OOM(OutOfMemory)错误,有进程被强制kill,询......
  • 快指针慢指针
    快指针和慢指针主要解决将某一目标值覆盖或抛到数组最后且不改变原数组剩下元素的顺序的问题快指针每次循环都会往后移动,慢指针只有快指针没有遇到目标值的时候才会往后移动,在慢指针移动之前还要对目标值进行覆盖或则交换操作。将目标值抛到最后https://leetcode.cn/problems/m......
  • 【项目心得】关于Angular中使用Cookie
    今天写一个Angular前端项目时遇到需要使用Cookie的场景,bing寻找解决办法根据bing搜索第一条的方法,使用了一个名为”ngx-cookie-service“的库,结果方才一导入,就提示报错,报错信息如下:Error:Uncaught(inpromise):Error:NG0203:inject()mustbecalledfromaninjec......
  • 关于vue的axios请求的封装
    先加载axiosimportaxiosfrom'axios';importVuefrom'vue';importQsfrom'qs';importurlsfrom'./url'import{ Message}from'element-ui';//用来设置接口请求频繁时候的调用varapi_url;varapi_data;//axios.def......
  • 关于编写自动调度脚本遇到的问题
    需求将入库的stg层表中日指标历史数据同步到dwd层,之前的日指标数据账期从20230820到202309181.echo输出变量导入配置文件最后的结果#!/bin/bashsource~/.bashrcsource~/.bash_profilesource/etc/profilestart_date=20230820end_date=20230918current_date=$st......
  • 关于文件下载的封装
    importaxiosfrom'axios'constisIE=()=>navigator.userAgent.toLowerCase().indexOf('trident')>-1; //判断是否为IE浏览器//文件下载exportasyncfunctiondownLoad(params){  //returnrequest('/ability/api/rs/gw/file/'......
  • 七天学会C语言-第六天(指针)
    1.指针变量与普通变量指针变量与普通变量是C语言中的两种不同类型的变量,它们有一些重要的区别和联系。普通变量是一种存储数据的容器,可以直接存储和访问数据的值。:intnum=10;//定义一个整数型普通变量num,赋值为10在例子中,变量num是一个普通整数变量,它直接存储了值10。指针变......
  • C++ 智能指针概述
    原始指针要想了解智能指针,就需要首先了解原始指针的痛点,原始指针有几点问题忘记释放内存->产生内存泄漏在尚有指针引用内存的情况下释放内存(使用已经释放掉的对象)->产生引用非法内存的指针同一块内存释放2次智能指针的产生本质上都是为了解决这些问题关于使用new动态分......