设为首页 加入收藏

TOP

C语言数组名传递给函数,数组的sizeof变为4的原因
2015-02-02 14:37:58 来源: 作者: 【 】 浏览:17
Tags:语言 递给 函数 sizeof 变为 原因

C语言中,数组名作为参数传递给函数时,退化为指针,sizeof对指针操作结果应该是4。


例子如下:


#include
using namespace std;


void Swap_arr(char* charArr){
? ? int len = sizeof(charArr);
? ? cout << "len =" << len << endl;? ? //输出len =4
}


int main(){
? ? char charArr[] = "abcdefgh";
? ? Swap_arr(charArr);
? ? return 1;
}


所以函数中如果需要数组的大小时,需要我们一个参数传数组名,另一个传数组大小。如下所示:


#include
using namespace std;


void test_arr(char* charArr, int len){
? ? cout << "len =" << len << endl;? ? //输出:len =8
}


int main(){
? ? char charArr[] = "abcdefgh";
? ? int len = sizeof(charArr) / sizeof(charArr[0]) - 1;
? ? test_arr(charArr,len);
? ? return 1;
}


C语言梳理一下,分布在以下10个章节中:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java数组不能通过toString方法转.. 下一篇C语言符号优先级

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: