一天练习一个小C/C++程序(二) 指针到底该如何使用

以前写C基础的时候,写过很多次指针的例子,那到底指针在C项目中会怎么应用呢?

通常有两方面:

一:函数的传参:我们已经说过,函数传参除非传的是内存地址,要不修改后的值对传入之前的值没有影响。

二:跨函数修改值: 其实我觉得这个和第一条一样。。都是为了使其在另一个函数的修改无论在哪都生效。

三:定义数据结构。


其实可以发现,需要直接操作内存的情况下,就需要使用指针,这样指针才有意义。

例子:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <conio.h>
/**
* 定义一个通用换值函数
* 因为要通用,所以定义为void类型指针。void指针也叫做万能指针,因为它类型不确定,也不需要确定,仅直接代表内存首地址
*/
void swap(void *x,void *y,size_t sz){
	void* temp = malloc(sz);
	//memcpy函数:将第二个参数的指针对应的内存中的数据覆盖第一个参数指针对应的内存中数据,第三个参数为数据的长度
	memcpy(temp,x,sz);
	memcpy(x,y,sz);
	memcpy(y,temp,sz);
}

int main(){
	//int类型互换测试
	int x = 1;
	int y =5;
	swap(&x,&y,sizeof(int));
	printf("%d\n",x);
	printf("%d\n",y);
	//double类型互换测试
	double dx = 22.22;
	double dy =55.55;
	swap(&dx,&dy,sizeof(double));
	printf("%f\n",dx);
	printf("%f",dy);
	getch();
	return 0;
}

结果:



而且我觉得绕什么3,4,5,6级指针更本没什么意义,我觉得大于等于三级指针应该不要出现,这只会让程序难以理解,如果你非要写一个三级指针,那么,或许你的解决办法并不是最优的,你需要再仔细想想了。指针其实挺有意思的。。。



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值