问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问在C语言中,函数传参时怎样利用指针传递数组

发布网友 发布时间:2022-07-12 23:38

我来回答

5个回答

热心网友 时间:2022-06-29 02:57

数组名就是指针,例如:

#include <stdio.h>

void pr(char *p)

{

printf(p);

}

void main(void)

{

char s[] = "abc";

pr(s);

}

扩展资料:

注意事项

非数组类的声明尽量以指针的方式进行比较好。倘若一个指针指向的内存并不是一个数组,那么采用数组名的声明方式或许就会给人产生错误的引导。类似的,如果指向的是一个数组区域,则会给人以更加丰富的信息。例如:

int main(int argc,char* argv[])

{

/* code here */

}

int main(int argc,char** argv)

{

/* code here */

}

两种方式完全等价,但是前面一种能够更清晰地看出:这个参数是指向某个元素起始地址的指针,而后面的这种方式则不能够直观地看出这种含义。

热心网友 时间:2022-06-29 04:15

比如函数需要一个整型数组:

void ex(int a[])

{

}

或者可以写成:

void ex(int *a)

{

}

效果是一样的。

使用的时候:

引用数组中的第2个元素(即下标为1的元素)

a[1]

或者*(a+1)

基本上与数组的正常使用没有区别。

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

热心网友 时间:2022-06-29 05:50

声明:
int arr(int a[]);<=>int arr(int *a);(计算机会把前者也翻译成后者处理,效果等价)

数组名就是指针

int a[5]={1,2,3,4,5};

引用时:
arrey=arr(a);

其实形参是一个指向该数组的指针,而数组只有一个,指向即操作

返回数组值我不知道你想问什么

热心网友 时间:2022-06-29 07:41

直接上例子:
比如函数需要一个整型数组:
void ex(int a[])
{
}
或者可以写成:
void ex(int *a)
{
}
效果是一样的。
使用的时候:
引用数组中的第2个元素(即下标为1的元素)
a[1]
或者*(a+1)
基本上与数组的正常使用没有区别。
(但要注意 由于调用函数时只传递了指针(首地址) 所以程序不会做超界检查)
========================补充============================
你在子函数中进行的更改会直接影响到原数组的内容
这也就意味着 只要你在处理函数中更改了数据 那么任何函数(包括原函数)访问这个数组时 都使用的是你更改以后的数值

热心网友 时间:2022-06-29 09:49

数组名就是指针,例如:
#include <stdio.h>
void pr(char *p)
{
printf(p);
}
void main(void)
{
char s[] = "abc";
pr(s);
}
请问在C语言中,函数传参时怎样利用指针传递数组

数组名就是指针,例如:include &lt;stdio.h&gt; void pr(char *p){ printf(p);} void main(void){ char s[] = "abc";pr(s);}

C语言中,数组做函数参数如何才能按值传递?

传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址。void func(int array[10])void func(int array[])void func(int *array)所以以上三种函数声明完全等同。实际情况是,数组做参数,完全无法按值传递。这是由C/C++函数的实现机制决定的。下一个问题是:为什么偏要按值传递呢?当要...

C语言自定义函数怎么传参,一次性把数组的数据全部传入?

1. 数组参数就是指向第一个元素的指针: #include &lt;stdio.h&gt; void getArr(int p[], int si);int main(void){ int ns[] = {1,2,3,4,5};getArr(ns, sizeof(ns)/sizeof(ns[0]));getchar();return 0;} void getArr(int p[], int si) { int i;for (i = 0; i &lt; si;...

C语言中 指针做函数参数传递二维数组

void fun(int (*p1)[3],int (*p2)[3]);int main(){ int p1[3][3]={{7,8,9},{4,5,6},{1,2,3}} ;int p2[3][3] = {0};int i = 0, j = 0;fun(p1,p2);for(i = 0;i &lt; 3;i++){ for(j = 0;j &lt; 3;j++){ printf("%d ",*(*(p2+i)+j));} prin...

c语言,如何用指针向函数传递一个三维数组,并在函数内用该指针改变三位数...

void fun(a,10) 将数组a的首地址赋给指针s { int i; i 计的是这数组中有几个字母 for (;*s;s++) 每循环一次,s后移一位,判断结束循环的条件s指向的内容为" \0 "{ if(*s&gt;='a'&amp;&amp;*s&lt;='z'||*s&gt;='A'&amp;&amp;*s&lt;='Z') i++;} ...

C语言中向一个函数传递一个数组,函数中定义一个指针变量,请问这个指针...

指针传递到函数后,函数可以像用数组一样使用它,比如你传入的是int *a,如果数组大小为n,那么就可以 for(int i=0;i&lt;n;i++)dd = a[i];来访问数组中的元素值了!

为什么C语言函数传参数的时候要传指针?

代码在编译时会出现 error C2664: 'InsertSort' : cannot convert parameter 1 from 'int' to 'int []'这是因为用数组名做函数实参时,向形参(数组名或指针变量)传递的是数组首元素地址,因此对参数的类型做一下改变,如下图所示:

c语言数组在函数中的传递

数组名本身就是地址,你在定义你两个方法时就定义指针类型就可以了,,然后能够直接操作数组的数据

C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是什么...

函数只有两种传递方式:1、值传递,又称单向传递,只能把实参数值传给形参 ,形参最后的结果不影响实参(形参改变大小 ,实参大小不变)。2、址传递,通过指针,把实参的地址给形参,形参的大小可以影响实参。

C语言中,指针数组作为主函数的形参整个过程怎么操作??以图片主函数为例...

对于主函数的参数, argc 和 argv可以说是在程序执行的时候传递的 其中:argc 指执行程序时命令参数的个数,argv 可以说是一个字符二级指针,也就是是字符串数组 如果执行命令如下:./a.out China BeiJing 则此时argc = 3;argv[0]的内容为 ./a.out argv[1]的内容为 China argv[2]的内容为 ...

c语言怎么调用函数 无参函数和有参函数 c语言函数的定义与调用 c语言常用函数大全 递归函数c语言 c语言子函数调用举例 函数分为无参函数和什么 C语言函数 c语言函数类型
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
高分求林志颖版绝代双骄中所有曲子,不是片头曲和片尾曲!!! 世界著名的美声音乐家 谁有林志颖版绝代双骄里面的全部配乐??知道名字也行... 丝瓜要多久才开花 新闻照怎样照才最有新闻价值 ...花木兰提名奥斯卡,不同风格的小仙女,《花木兰》有什么特色? 北师大江津附中教学质量怎样 里有什么四字成语 阅读材料,选择合适的方法把下列混合物按要求分离.材料一:如图:材料... 如果物体是易溶于水,但熔点50沸点75的话,跟水混合后,蒸馏水时会不会跟... C语言里数组和指针有什么关系? C语言:从调用函数来看,函数传递的是数组,所以函数的形参应为指针,为什么是这样的?谢谢 c语言中函数传数组和传指针之间的关系 山东半岛能养殖牛蛙吗?气温适合吗?- 问一问 女孩子学什么技术好,汽车商务怎么样? 朋友帮我注册了一个网易帐号,现在忘了密码怎么办,注册资料我没有,也没有绑定手机和QQ,怎么办,这号 中汽驰润这个牌子的汽车机油怎么样? 用邢台怎么造句,100条用“邢台”造句 怎么用办公自动化发送邮件 北平和平解放最重要的意义是什么? 明明是他的,为什么搜索显示不存在呢? 微信用搜索对方,为什么显示不存在? 为什么有些显示不存在 搜索用户不存在怎么回事 搜索对方,显示用户不存在,换一个码再搜索对方的,就可以看到,是什么情况? 朋友的为什么搜索不存在? 对方加我微信显示是搜索,他知道我吗? 陌生人通过搜索加我,为什么她知道我呢,我也没有告诉谁,求解 用搜人对方会发现吗 频繁搜索一个人的会怎样 C语言二维数组传参与指针的问题? c语言指针传递问题 C语言中向一个函数传递一个数组,函数中定义一个指针变量,请问这个指针变量在for循环中要怎么使用? C语言中,函数中的值传送和数组传送分别是什么意思?又是怎么用的?求高人指导,谢谢! 中国共产党为什么要和平解放北平 党中央为什么采取和平手段解放北平? 世博会标志设计的感悟 KKK! 雕和塑的区别?什么样的作品是雕?什么样作品是塑? 圆雕是什么样的? 雕长什么样? 如何查看点歌机的品牌? 共产党为什么要和平解放北平 孔武有力的意思? 以前对方抖音看到是通讯录好友现在是学校关注是不是他把我电话拉黑了 中共为什么要和平解放北平? 骑摩托车跑了交警追吗 现在交警不允许追摩托车了吗- 问一问 摩托车炸街公安可以追吗 安佳牛奶怎么样 梦幻西游手游元宵节活动怎么造句 造句答案是什么