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* 类型,并被放在内存的静态区吗? 展开
2. func( char pString[] )
3. func( char pString[10] )
请问这三种形式有没有差别?
还有 "hello"
在编译的时候, "hello" 是被解释成 char* 类型,并被放在内存的静态区吗? 展开
4个回答
展开全部
在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;
}
展开全部
从函数内来看基本是没有差别的,但从外边看,指针跟数组还是有些小区别,多看看书上解释,这类问题都讲得比较多
追问
在编译的时候, "hello" 是被解释成 char* 类型,并被放在内存的静态区吗?
来自:求助得到的回答
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没差,都是传入地址
追问
在编译的时候, "hello" 是被解释成 char* 类型,并被放在内存的静态区吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询