我想问一下这两个数组传递方法是否有区别:
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);
我的问题是:
其他问题:
答案 0 :(得分:3)
unsigned char array[]
只是函数声明中unsigned char *array
的语法糖。它们完全相同。
const
表示function
保证不会修改array
的内容。第一个例子对调用者没有这样的保证。
答案 1 :(得分:1)
通常在c / c ++中 unsigned char array [] 是 unsigned char * array ,它由连续的内存组成。
每当数组传递给函数时,它都被视为表示基址的指针(*)。
提及const- (const unsigned char * array)表示其值不会改变。