C语言中数组参数传递,sizeof(数组名)的值
求教,为什么以下代码中的ss和tt的值是数组长度,ssize和tsize却是指针的长度???为什么咧?
#include<stdio.h>
int strrindex(char s[], char t[]);
int main()
{
char s[] = "hworldmeworldhello";
char t[] = "world";
int ss = sizeof(s) / sizeof(s[0]);
int tt = sizeof(t) / sizeof(t[0]);
int v = strrindex(s, t);
printf("%d", v);
}
int strrindex(char s[], char t[])
{
int ssize;
ssize = sizeof(s) / sizeof(s[0]);
int tsize;
tsize = sizeof(t) / sizeof(t[0]);
// int ssize = strlen(s);
// int tsize = strlen(t);
int i, j, k;
for (i = ssize - tsize; i >= 0; --i)
{
for (j = i, k = 0; t[k] != '\0'&&s[j] == t[k]; ++j, ++k)
;
if (k>0 && t[k] == '\0')
return i;
}
return -1;
}