C语言中的形参也可以使用&符吗

嗜学如命的小蚂蚁 发布于 2016/01/20 09:40
阅读 131
收藏 0

@xpbob 你好,想跟你请教个问题:

最近在看数据结构C语言版的书,里面很多函数伪代码的形参里面,都带有&符,如: Status CreateBiTree( BiTree &T ),这种写法让我有点迷惑,去网上查了一下,说是引用,是c++里面的语法,这句话也不知道对不对,为了弄清这个&符的作用,做了两个测试。

测试1

# include <stdio.h>

void swap( int * a, int * b )
{
	int t;
	t = *a;
	*a = *b;
	*b = t;
}

int main( void )
{
	int i, j, k;

	printf( "请输入三个数值:\n" );
	scanf( "%d %d %d", &i, &j, &k );

	if( i < j )
	{
		swap( &i, &j );
	}

	if( i < k )
	{
		swap( &i, &k );
	}

	if( j < k )
	{
		swap( &j, &k );
	}

	printf( "%d %d %d\n", i, j, k );

	return 0;
}



测试2:

# include <stdio.h>

void swap( int &a, int &b )
{
	int t;
	t = a;
	a = b;
	b = t;
}

int main( void )
{
	int i, j, k;

	printf( "请输入三个数值:\n" );
	scanf( "%d %d %d", &i, &j, &k );

	if( i < j )
	{
		swap( i, j );
	}

	if( i < k )
	{
		swap( i, k );
	}

	if( j < k )
	{
		swap( j, k );
	}

	printf( "%d %d %d\n", i, j, k );

	return 0;
}



测试1,我是非常明白的,也是经常使用的。测试2,在做完测试之后,基本上也理解了它的用法,但是还是不知其所以然,希望能指点一下,谢谢了

加载中
0
xpbob
xpbob
引用确实是c++的语法,他就表示你的数据本身,而不是拷贝,可以理解是一个const指针,指向的内容是不变的,就是你开始赋值,效果就是你原来需要传递指针的地方都可以用引用替换,而且c++更推荐用引用,他比你自己写指针安全
嗜学如命的小蚂蚁
嗜学如命的小蚂蚁
真是谢谢了哈
返回顶部
顶部