缺省参数的使用补充

文章通过示例解释了缺省参数如何在C语言中用于数据结构栈的初始化,特别是在避免频繁扩容和优化内存管理方面的作用。通过对比两种不同的栈初始化方法,强调了使用缺省参数可以更灵活地确定所需空间大小,从而提高程序效率。
摘要由CSDN通过智能技术生成

  这是我看到的一位大佬写的对缺省参数的理解:https://blog.csdn.net/m0_62171658/article/details/124504342

写的很详细了,在此基础上我就补充一点缺省函数的用处吧:  

  我们在C语言学习数据结构时见过以下代码吧:

 我们要给栈创建空间,但我们创建的大小有可能不够,那有人就说可以扩容,确实可以,但是在开辟足够的空间前要不断地插入不断地扩容,是会有消耗的。这里半缺省参数就很好的解决了这个问题。

  这里给大家展示部分代码,来比较区别:

st2的代码没有将空间开辟的量固定,用半缺省参数确定空间大小,此时就可以很好地开辟我们所需要的空间。

  

#include <stdlib.h>
#include <iostream>

using std:: cout;
using std:: endl;

namespace abc
{
	typedef struct Stack
	{
		int* base;
		int* top;
		int stacksize;
	}ST;

	void StackInit(ST* p, int N = 3);
	void StackPush(ST* p, int x);
}

void abc::StackInit(ST* ps, int N )
{
	ps->base = (int*)malloc(sizeof(int) * N);

	ps->top = 0;
	ps->stacksize = 0;
}

void abc::StackPush(ST* ps, int x)
{
	// ...
}
int main()
{
	abc::ST st1;
	//这里我们可以确认空间大小是10
	//就直接输入10
	StackInit(&st1, 10);
	for (size_t i = 0; i < 10; i++)
		{
			StackPush(&st1, i);
      	}

	// 不知道可能会插入多少个
	//就这样写避开了扩容
	abc::ST st2;
	StackInit(&st2);

	return 0;
}

  以上就是本篇内容,创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,如果喜欢我的文章,给个关注吧!

如果本篇博客有任何错误,请批评指教,不胜感激 !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值