gpt4 book ai didi

c++ - 传递给函数的数组差异

转载 作者:太空宇宙 更新时间:2023-11-04 06:23:56 26 4
gpt4 key购买 nike

想问下这两种数组传递方式有区别吗:

unsigned char array[100];

function(array);

Where:

library.cpp
uint8_t LibraryClass::function(unsigned char array[]) { }

library.h
uint8_t function(unsigned char array[]);

还有这个:

unsigned char array[100];

function(array);

Where:

library.cpp
uint8_t LibraryClass::function(const unsigned char* array) { }

library.h
uint8_t function(const unsigned char* array);

我的问题是:

  • 这和方法有区别吗?

附加问题:

  • 我的 MCU 需要在方法 1 而不是方法 2 中进行额外的操作?
  • 方法2中多了一个const,为什么要用?使用指针时使用 const 安全吗?

最佳答案

  1. unsigned char array[] 只是函数声明中 unsigned char *array 的语法糖。它们实际上是相同的。

  2. const 表示function 保证不修改array 的内容。第一个示例没有向调用者提供此类保证。

关于c++ - 传递给函数的数组差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29541634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com