使用 size_t 时 "not found" 的标准
Standard for "not found" when using size_t
当您进行数组搜索但未找到该值时,是否有标准使用什么值。
签名后我会 return -1。但是 size_t aka long unsigned.
呢?
int find(int a[],int b, int n){
for(int i=0; i<n; i++){
if(a[i]==b)
return i;
}
return -1;
}
用size_t的时候就会想出这个。但这并不完美。
long long int find(int a[],int b, size_t n){
for(size_t i=0; i<n; i++){
if(a[i]==b)
return (long long int)i;
}
return -1;
}
为了允许 size_t 类型具有负值,有一个 ssize_t
类型是有符号的。
您不能依赖 size_t 与 unsigned long 的等效性,因为它的体系结构特定。
当您进行数组搜索但未找到该值时,是否有标准使用什么值。 签名后我会 return -1。但是 size_t aka long unsigned.
呢? int find(int a[],int b, int n){
for(int i=0; i<n; i++){
if(a[i]==b)
return i;
}
return -1;
}
用size_t的时候就会想出这个。但这并不完美。
long long int find(int a[],int b, size_t n){
for(size_t i=0; i<n; i++){
if(a[i]==b)
return (long long int)i;
}
return -1;
}
为了允许 size_t 类型具有负值,有一个 ssize_t
类型是有符号的。
您不能依赖 size_t 与 unsigned long 的等效性,因为它的体系结构特定。