C++中memset与无穷大的用法

直接上代码 

#include<iostream>
#include<string.h>   //memset需要包含头文件 也可以使用C++中#include<cstring>
using namespace std;
int a[10];  //全局变量 初始值为0 
char b[4];  //字符型输出时 没有初始值 整形输出时 初始值为0 
int main(){
	memset(a,-1,sizeof(a));//数组名 要设置的值(只能设置为0、1、无穷大)  数组所占用的总字节数 
						   //sizeof(a)此处为40  如果直接写36则最后一个数还为0  前九个为-1 
	for(int i=0;i<10;i++) printf("%d",a[i]);
	memset(b,'g',sizeof(b)); //也可以为字符数组赋值  全部为单个字符 
	for(int i=0;i<4;i++) printf("%c",b[i]);
	return 0; 
}

注意:

C++中全局变量默认为0(整型数组、整型) 

//全局变量中
int a[10];     //全为0
int a[10]={1}; //第一个为1 其他全为0

无穷大的使用与memset无穷大的设置

当我们在一些题中需要用到无穷大时,int类型最大表示为0x7ffffff,并且有时候会出现无穷大加无穷大,如果使用它,两个无穷大相加会变为负数,所以不能使用0x7ffffff。

但0x3f3f3f3f+0x3f3f3f3f=2122219134满足无穷大加无穷大还等于无穷大,所以一般使用0x3f3f3f3f3f作为最大值

0x3f3f3f3f还有一个优点,当我们需要对一个整型数组全部赋值为最大值时,可以直接使用

memset(a,0x3f,sizeof(a)); memset是按单个字节进行存储的,刚好4个字节存储为0x3f3f3f3f。

C++中     0的表示为00000000,四个字节 组合在一起还是0

               -1的表示为11111111,四个字节组合在一起还是-1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值