数组传入函数会变吗(当数组作为参数传递给函数时,会向该数组传递

http://www.itjxue.com  2023-01-28 07:56  来源:未知  点击次数: 

在c语言中以数组名传递的实参会不会发生改变

以数组名传递的实参实际上就是传递的数组的地址,将数组名传过去,然后对数组进行操作肯定会对数组的内容进行改变!!

不仅仅是数组名,其他所有的以地址作为实参,都会对实参进行改变!!

这一点要注意!!

有什么不明白的可以交流下!!

c编程高手团队正在招新,有意者速速行动,一起学习,一起努力!!

C++的数组传递进函数时,明明是值传递,为什么还是会对原来的数组产生改变?

你传进去的是数组,其实数组相当于指针,数组名就是这些元素的首地址,所以相当于你传了一个指针!当然会对数组产生改变!

c语言在调用函数中改变数组,原数组改变吗

C语言不会复制整个数组,它会要求传入数组名(一个指向数组首地址的const指针),函数中对整数的改变其实就是对实际数组的改变!

C语言 为什么把数组传递到函数中去之后长度就变成了1?

c的数组不带长度信息,这个b只是个地址,也就是个int *,它值等于a的地址。

sizeof(int *) / sizeof(int),所以结果是1

要想取得数组长度是取得不了了,多带一个参数length吧

如何把数组传递进函数而不改变数组的值。

int sum(const int *aa「4」);/*形参为常量指针数组, 数组aa的每个元素都是常量指针, 不会改变实参的值*/

main(){

int num「4」「4」;

...

int s =sum(num);//将二维数组num的地址即num「0」「0」传给sum函数参数为指针数组的形参

}

数组的首地址传递给被调函数也会改变原有值吗

数组里面的值可以改变,数组指针的值不会改变。

比如

void f( int * Data )

{

Data[0] = 2; //这里会改变

Data = (int *)0x7fffffff; //这个不会改变

}

int a[11];

a[1] = 1;

a[0] = 0;

f( a );

(责任编辑:IT教学网)

更多

推荐安全技术文章