C语言 指针【指针 || 函数】

函数指针 和 指针函数

函数指针 : 指向一个函数的指针
		函数指针的定义的方法:
		 int  (* p) (int , int);
		指向函数的返回值类型 (* 指针变量名) (指向函数形参类型列表);
			int sum (int a,int b)
			{
			}
			=> int  (*p) (int,int);
			/
			int * func(int a,int b)
			{
			}
			=>int * (*p)(int ,int);
		函数指针的指向:
			指向函数的地址,函数中,函数名或者&函数名都可以当作函数的地址
			int  (*p)(int,int);
			p=∑    或者 p = sum;	//sum为上面定义的函数
		通过函数指针访问函数
			(*p)(实参列表)
			   p (实参列表)
		
指针函数:
		本质上是一个函数,只是返回值为一个指针
		void * func(int ,int); 指针函数
		void (* func)(int ,int);函数指针

二级指针和多级指针

指针指向的是一个地址,但它自己本身也是存在一个地址的,
	这个时候就可以定义二级指针用来保存他的地址
	int *p = &a;
	int **q = &p;
	int ***z = &q;
	.............
	不需要分清楚它是几级指针,需要做的是理解他是保存的谁的地址。

动态分配空间 (重点malloc)

	malloc		申请空间
		int *p = (int *)malloc(sizeof(*p));
		分配空间,成功返回空间首地址,失败返回NULL;
		空间一旦分配就不会消失,除非,进程消亡,或者手动调用free释放空间
		free(p);
		使用malloc需要注意可能回造成内存泄漏,就是你的指针指向了另一个空间
		导致这个空间找不到了

	calloc
		void *calloc(size_t nmemb, size_t size);
		calloc作用类似与malloc,不过它是给数组分配内存的
		两个参数:
				nmemb: 表示分配多少个元素
				size: 表示每一个元素占多少个字节
				
	realloc
		void *realloc(void *ptr, size_t size);
		realloc用来把ptr(由malloc/calloc/realloc返回的动态内存的地址)
		指向的内存空间,扩展到size大小

超大数据运算(使用long int 都会越界的)
(1)超级大的数据你怎么取保存(char *)
(2)超级大的数值之间的+ - * /的实现

使用字符串 指针,做相对应的运算,加减都只需要后一位+1-1,乘除运行较为麻烦
		"11111123124165465465453165445615646546845"
		"874643513513513546523263323265624655466"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值