C/C++对数组赋初值的方法memset,fill

memset

函数格式:memset(数组名,值,sizeof(数组名));

使用memset需要引用string.h
值只能是0或者-1,因为memset是按字节赋值,要么全0,要么全1

其实赋值其他也可以,只是计算比较复杂,
int是4个字节,memset是按字节赋值,
如果赋值1,

memset(A,1,sizeof(A));

会出现这样:
00000001 00000001 00000001 00000001
四个字节,每个字节值为1,
但是这样整体的值就是16843009
在这里插入图片描述
0的二进制补码全0
-1的二进制补码全1
所以最好就是取0或者-1

int A[10];
memset(A,-1,sizeof(A));

fill

fill函数存在于 algorithm头文件下,需要引用此头文件
fill可以对数组或容器对某一区间赋任意值;

fill(a,a+5,233);

fill复杂度为线性,即相当于写了一个for

for(int i=0;i<5;i++)a[i]=233;

所以最好优先考虑memset进行赋值。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C++中,可以通过将函数的地址给函数指针来给函数指针初值。以下是几种常见的给函数指针初值的方式: 1. 直接值:将函数的地址直接给函数指针变量。 ```cpp // 函数原型 void myFunction(); // 定义函数指针类型 typedef void (*FunctionPtr)(); int main() { // 定义函数指针变量并初值 FunctionPtr ptr = myFunction; // 通过函数指针调用函数 ptr(); return 0; } // 定义函数 void myFunction() { // 函数体 } ``` 2. 使用取地址符 `&`:使用取地址符 `&` 获取函数的地址,并将其给函数指针变量。 ```cpp // 函数原型 void myFunction(); // 定义函数指针类型 typedef void (*FunctionPtr)(); int main() { // 定义函数指针变量并初值 FunctionPtr ptr = &myFunction; // 通过函数指针调用函数 ptr(); return 0; } // 定义函数 void myFunction() { // 函数体 } ``` 3. 使用 `std::function`(C++11):使用 `std::function` 类模板可以更灵活地管理回调函数。可以将函数、函数指针、lambda表达式等作为 `std::function` 的参数。 ```cpp #include <iostream> #include <functional> // 函数原型 void myFunction(); int main() { // 定义函数指针变量并初值 std::function<void()> func = myFunction; // 通过函数指针调用函数 func(); return 0; } // 定义函数 void myFunction() { // 函数体 } ``` 无论使用哪种方式,都可以将函数的地址给函数指针,以便后续通过函数指针调用函数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值