楼主:
kdok123 (小天)
2014-10-25 20:56:08void test(char *a)
{
cout << sizeof(a) << endl;// 4
cout << strlen(a) << endl;// 5
}
int main()
{
char a[] = "12345";
cout << sizeof(a) << endl; // 6
cout << strlen(a) << endl; // 5
return 0;
}
问题:
函数里面的*a(或者是a[],抑或是a[6]),算出来的sizeof(a)一定都是4(pointer的大小)
但是在main函数里的sizeof(a)却跟长度有关(a不也是指向a[0]的pointer吗?)
而strlen不论在main或是在test均可接到矩阵长度
目前是有点背的方式,strlen的处理不分函数位置
而sizeof只有在当下的函数里才有效,传出去的都是pointer
请问这边有什么观念可以补充的吗?