新人刚学😭如何对walk计数,这样用似乎不对,我试了用n=sizeof(walk)/sizeof(char);还是不行,正常来说n应该等于10的。
sizeof是C语言的一个运算符,不是函数,虽然用法很像函数,sizeof的作用是用来返回()里面的变量或者数据类型占用的内存字节数。
函数形参是数组时,实际传递的不是整个数组,而是数组的首元素首地址。也就是说函数传参用数组来传,实际相当于传递的是指针(指针指向数组的首元素首地址)。
所以你 walk 是指针,不是数组,
只有sizeof(数组名)操作的是数组时,才能返回整个数组所占用的内存空间(以字节为单位的)。
如果sizeof(指针)操作的是指针,返回是指针本身所占用的内存空间,在32位系统上,不管指针p指向的是整型数据,还是字符型数据,short型数据,long型数据等,指针本身所占的内存字节数均为4。
如果要在函数中用到数组长度就只能在函数外面获取数组长度再传到函数里。