自定义整形数组长度函数的问题
本帖最后由 bin554385863 于 2019-5-27 23:12 编辑#include <stdio.h>
#include "E:\Administrator\Documents\My C\My C Function\Function.c"
size_t arrlen( size_t arr[])
{
size_t i = 1;
while (*(arr+i)!='\0')
{
i++;
}
return i;
}
int main(int argc, char const *argv[])
{
int a[] = {0,1,2,3,4,5,6,7,8,9};
int b[] = {9,8,7,6,5,4,3,2,1,0};
int c[] = {1,2,3,4,0,5,6,7,8,9};
printf("arrlen(a) = %d\n", arrlen(a));
printf("arrlen(b) = %d\n", arrlen(b));
printf("arrlen(c) = %d\n", arrlen(c));
return 0;
}
-----------------------------------------------------------------------------------------
E:\Administrator\Documents\My C>cmd /C "c:\Users\Administrator\.vscode\extensions\ms-vscode.cpptools-0.23.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-z5nfovlr.ahu --stdout=Microsoft-MIEngine-Out-raqrkqg1.g3l --stderr=Microsoft-MIEngine-Error-jihjm1q3.oiv --pid=Microsoft-MIEngine-Pid-myhp2i3r.ctf --dbgExe=E:\MinGW\bin\gdb.exe --interpreter=mi "
arrlen(a) = 10
arrlen(b) = 9
arrlen(c) = 4
E:\Administrator\Documents\My C>
======================================
如上,当0在首位输出正常,
当0在中间或末尾就出现异常,
网上说的只有字符串数组的结束标志'\0';
数字数组如何判断已经结束? 字符串以一个'\0'作为结束标志那是系统约定,数字数组则无统一约定,只能根据情况,硬性规定一个不可能出现的特殊数值或组合来作为这个标志。 jackz007 发表于 2019-5-27 23:51
字符串以一个'\0'作为结束标志那是系统约定,数字数组则无统一约定,只能根据情况,硬性规定一个不可 ...
也就是说纯数字数组的结束标志可以自定义? 这个,您说了算! jackz007 发表于 2019-5-27 23:55
这个,您说了算!
{:5_109:}多谢
页:
[1]