memset():
函数原型:memset(void *s, int ch, size_t n)
函数作用:将所指向的某一块内存中的前n个字节的内容全部设置为ch指定的ASCⅡ值,第一个值为指定的内存块,块的大小由第三个参数指定,这个函数通常为申请新的内存做初始化工作,其返回值为指向s的指针,所在的头文件为<memory.h>或<string.h>
参数说明:
ch:这个值的范围在0-255之间(00000000到11111111),如果超过该范围,那么会对该值取后8位,如果ch为字符型,那么会取其ASCⅡ码。
- 对bool数组进行初始化:
当使用0或1时,0代表false,1代表true
当使用true或false时,true为true,false为false
使用其他值初始化时(字符),非0值为true,0为false(字符0取ASCⅡ码为48,也是true) - 对char数组进行初始化:
使用char变量,将初始化为相应的字符
使用int变量,将该int值作为ASCⅡ码,使用对应的字符进行初始化 - 对int数组进行初始化:
仅可在初始化的值的最后8位为11111111(255)或00000000(0)时能够进行初始化,也就是说int型数组仅能初始化为-1和0,其余方法均不能得到正确结果
参考:
https://blog.csdn.net/wangwei6125/article/details/73385133
new():
new是在计算机上开辟一块新的空间,且new开辟的空间在堆上,这意味着当在局部函数new出一段新的空间,该段空间在局部函数调用结束后仍然能够使用,可以用来向主函数传递参数。new函数返回的对象是一段空间的首地址,所以需要使用指针来存放这个地址。
使用举例:
#include<iostream>
using namespace std;
int main(){
int *t=new int(5);
t[4]=100;
for(int i=0;i<5;i++){
cout<<t[i]<<endl;
}
return 0;
}
输出:
5
13500608
582225001
134228928
100
https://blog.csdn.net/weixin_41232202/article/details/96452228