數組的引用和指針的引用

數組的引用和指針的引用
數組的引用
通過引用傳遞數組,和其他類型一樣,數組形參可聲明爲數組的引用。如果形參是數組的引用,編譯器不會將數組實參轉化爲指針,而是傳遞數組的引用本身。在這種情況下,數組大小成爲形參與實參類型的一部分,編譯器檢查數組實參的大小與形參的大小是否匹配。

注意:數組引用中,數組大小成爲形參與實參類型的一部分,則形參和實參中的數組大小要一致。否則編譯通不過。
void fun1(int (&a)[10])//若聲明爲&a[10]  則編譯通不過
{
	for(int i = 0; i < 5; i++)
		cout<<a[i]<<endl;
}
int main()
{
	int a[10]={0,1,2,3,4,5,6,7,8,9};
	fun1(a);
	getchar();
	return 0;
} <span style="color:#ff0000;">
</span>

數組的引用同樣看做是數組的別名。

指針的引用

void function(int *&ref)//指針的引用
{
 
 *ref=100;
 
}
int main()
{
 int x = 2;    
 int *z = &x;
 function(z);
 printf("x=%d\n",x);

 return 0;
}<span style="color:#ff0000;">
     </span>
若主函數如下,則編譯不通過//爲什麼不行的 ,感覺和上面的代碼差不多啊,但是上面的代碼可以運行。希望大牛們可以指導下。
int main()
{

 int x = 300;
 function(&x);
 printf("x=%d\n",x);

 return 0;
}






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