C语言 char 字符数组 和 字符指针 作为 函数参数 的区别

1.func(char*pString)2.func(charpString[])3.func(charpString[10])请问这三种形式有没有差别?还有"hello... 1. func( char* pString )
2. func( char pString[] )
3. func( char pString[10] )

请问这三种形式有没有差别?
还有 "hello"
在编译的时候, "hello" 是被解释成 char* 类型,并被放在内存的静态区吗?
展开
 我来答
吉祥二进制
高粉答主

推荐于2017-10-15 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84581

向TA提问 私信TA
展开全部

在C语言中,数组作为参数,进行传递时,传递的是指针 ,换句话说,字符数组作为参数,进行传递时,传递的是字符数组的起始地址,相当于一个字符指针,两者没有区别。比如下面的代码:

#include <stdio.h>

void f1(char *s) { printf("%s\n", s);}
void f2(char sa[]) { printf("%s\n", sa);}

int main()

char rsa[] ="world hello";
f1(rsa);
f2(rsa);
return 0;
}
fangjun10568
推荐于2016-09-25 · 超过29用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:64.1万
展开全部
从函数内来看基本是没有差别的,但从外边看,指针跟数组还是有些小区别,多看看书上解释,这类问题都讲得比较多
追问
在编译的时候, "hello" 是被解释成 char* 类型,并被放在内存的静态区吗?
来自:求助得到的回答
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
helloworldasm
2013-03-22
知道答主
回答量:8
采纳率:0%
帮助的人:3.6万
展开全部
没差,都是传入地址
追问
在编译的时候, "hello" 是被解释成 char* 类型,并被放在内存的静态区吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
愤怒的发面
2013-03-22
知道答主
回答量:3
采纳率:0%
帮助的人:4545
展开全部
三个应该都是一样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式