c语言中什么叫引用?

Python012

c语言中什么叫引用?,第1张

引用(reference)是c++对c语言的重要扩充。引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*,例如: Point pt1(10,10)。

Point &pt2=pt1,定义了pt2为pt1的引用。通过这样的定义,pt1和pt2表示同一对象。

需要特别强调的是引用并不产生对象的副本,仅仅是对象的同义词,引用必须在定义时马上被初始化,因为它必须是某个东西的同义词。

循环结构:

循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do while循环和for循环。

四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误。

特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。

#include <stdio.h>

void fun(int * a,int k)

void main()

{

int a[10]

printf("请输入10个整数:\n")

for(int i=0i<10i++)

{

scanf("%d",&a[i])

}

fun(a,sizeof(a)/sizeof(a[0]))

}

void fun(int a[],int k)//这就是你想要的函数

{

int g0=0,t0=0,e0=0/*g0就是>0,t0就是小于0,e0就等0*/

for(int i=0i<ki++)

{

if(a[i]>0) g0++

if(a[i]==0) e0++

if(a[i]<0) t0++

}

printf("大于0的个数为:%d\n",g0)

printf("小于0的个数为:%d\n",t0)

printf("等于0的个数为:%d\n",e0)

}

/*

说明就和ichenq的差不多,只是ichenq的那个有问题,比如他的if语句里多了几个""号,导致无没通过,另外我用他的函数来测试得不到想要的结果

sizeof(a)/sizeof(a[0])就是数组a的长度*/

C语言里面没有引用的说法,只有C++里面有。C++里引用就是给变量定义一个别名,操作这个别名就是操作原变量。

比如,我们定义一个引用:

int a=10      //定义一个普通变量

int &ref=a    //定义一个变量a的引用

ref=20        //这里对ref进行操作其实就是对a进行操作

变量主要是在参数传递的时候非常有用,当你的函数参数是一个值参数的时候,我们一般的做法是传递一个指针进去,这样就导致我们在函数里操作的都是指针,这样其实很不方便,如果使用引用的话就可以非常方便。

比如定义一个参数是引用的函数

void func(int &b)

{

    b++

}

//调用

int a=100

func(a)      //调用的时候直接传递参数进去

上面的方式可以实现和指针一样的效果,但是更加方便