第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么數(shù)組中某一個元素的值可以在函數(shù)中被改變,如果是單一變量就不可以?

#include<stdio.h>

void?change(int?b)
{
	b?=?5;
}

int?main()
{
	int?a=3;
	change(a);
	printf("%d\n",a);
	return?0;
}

這個代碼執(zhí)行出來的結(jié)果還是3,change函數(shù)里的操作不影響main函數(shù)里定義的a的值

#include<stdio.h>

void?change(int?arr1[])
{
	arr1[0]=?3;
}

int?main()
{
	int?arr[]={1,2,3};
	change(arr);
	printf("%d\n",arr[0]);
	return?0;
}

但是對于數(shù)組來言,在change函數(shù)里改變了只是作為形參的arr1的一個元素的值,卻影響了在main函數(shù)中定義的arr的第一個元素的值。

求解釋,謝謝

正在回答

2 回答

#include<stdio.h>

void?change(int *b)

{

??? *b?=?5;

}

int?main()

{

????int?a=3;

????change(&a);

????printf("%d\n",a);

????return?0;

}

//這個要用到指針,具體你可以參見Linux C語言 初始指針與內(nèi)存教程的2.1,一樣一樣的

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

肖科夫斯基

change(a)只是把3傳遞進(jìn)去了,而執(zhí)行了change函數(shù)并沒有改變什么。用另一種方法,比如change函數(shù)用int類型,return b的值,然后引用的時候改成a=change(a);這個方案我之前試過,但是沒學(xué)指針之前確實不太理解為什么之前那種不行。數(shù)組應(yīng)該就是樓上那位說的原因吧。
2017-12-28 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕姐5552928 提問者

非常感謝!
2017-12-28 回復(fù) 有任何疑惑可以回復(fù)我~

數(shù)組是分配好內(nèi)存的,是有明確的地址的,所以被調(diào)函數(shù)里的值變了,也就影響了在main函數(shù)中。

如果是第一種,就要把值返回來,用return b

int ?change(int?b)????? //返回類型為整形 ,用int

{

????b?=?5;

????return b??;? //

}

?

int?main()

{

????int?a=3;

????a=change(a);??? //

????printf("%d\n",a);

????return?0;

}

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

肖科夫斯基

你這個我昨天試過了,不行的
2017-12-27 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

為什么數(shù)組中某一個元素的值可以在函數(shù)中被改變,如果是單一變量就不可以?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號