C语言标准库介绍(指定拷贝--memset,计算平方根--sqrt)

本文详细介绍了C语言中的memset和sqrt函数。memset用于批量初始化内存,文章通过实例展示了如何将其应用于字符串部分替换。sqrt函数用于计算平方根,文章解释了如何处理不同类型参数的传入,并讨论了隐式类型转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、memset

1.函数形式

void *memset( void *dest, int c, size_t count );

1.1解析

返回值:空指针
参数:
void*dest-----返回目的的的值(描述对象),即要被修改的值

int c-------设立的字符,即要修改替代的字符

size_t count--------修改替代字符的个数,即替代几个

2.头文件

#include <menory.h>或#include <string.h>

3.作用(使用场景)

如果我要修改一串数值,但我只想让它按照我希望的样子,只改变几个数,这种局部拷贝数值的时候,就用memset

4.举例

4.1 修改"hello world"变成"***** world"

#include <stdio.h>
int main()
{
	char arr[] = "hello world";
	memset(arr, '*', 5);
	printf("%s", arr);
	return 0;
}

注意点:
1、因为arr是要打印一串的,所以要用%s,以字符串的形式打印,如果用%d,那么就会打印一串数字,其原理是因为【字符的存储是以ASCII值进行的】
2、memst的返回值是一个空指针,如果我们想要显示被这个数值被修改之后的情况时,打印出实参1就行了,毕竟修改的对象就是实参1

4.2 实参2如果我用的是字符串的形式怎么办

#include <stdio.h>
int main()
{
	char arr[] = "hello world";
	memset(arr, "*", 5);
	printf("%s", arr);
	return 0;
}

在这里插入图片描述
结论:替代的部分会统一由0替代

二、sqrt

1.函数形式

double sqrt( double x );
含义:传进去一个double类型的数,返回一个double类型
ps.如果返回类型或者参数写成了int,也没有什么问题,详情见4.2
返回值:x的平方根

2.头文件

#include <math.h>

3.作用

计算平方根

4.举例

4.1计算45.3的平方根

//计算45.3的平方根
#include <stdio.h>
#include <math.h>
int main()
{
	double ret = sqrt(45.3);
	printf("%.2lf %.2lf", sqrt(45.3),ret);
	return 0;
}

在这里插入图片描述

4.2 如果我实参传进去int类型的怎么办(甚至返回类型都写错)

//计算16的平方根
#include <stdio.h>
#include <math.h>
int main()
{
	int ret = sqrt(16);
	printf("%d",ret);
	return 0;
}

在这里插入图片描述
结论
sqrt用int作为返回类型或者是实参都是没有问题的,这边的原理是隐性类型转化

4.2.1隐性类型转化

c语言的一个语法规则 就是当两个数据类型不一样 会自动转成一样的进行计算
这个例子中,我传进去了16,因为sqrt接收的要是double类型,所以里面的计算实际是以16.0进行计算的,根据sqrt函数的形式,返回的是double类型即4.0,但是因为这边是用int来接收的,所以就转换成了所期望的整型,也就是4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值