C語言 | 函數內修改數組值(指針的應用)

#define OK 1

int RetArr(ivs_sint32_t *a)
{
	a[0] = 2;
	a[1] = 3;
	return OK;
}

int main()
{
	int out_a[2] = { 0 };
	RetArr(out_a);
	for (int i = 0; i< 2; i++)
	{
		printf("%d \n",out_a[i]);
	}
    return 0;
}

如上述代碼所示,首先數組out_a在棧上申請臨時內存,並將數組地址插入函數RetArr,因爲數組名就是指向數組的指針。而函數RetArr內用a[i]對數組進行修改,最終該修改可以影響函數外的數組值。因爲a[i]*a(i)是一樣的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章