做百科权威网站有哪些,专业做网站和小程序,名片在哪个网站做,WordPress 账号打通目录
引用的概念
引用做函数参数
引用的本质
常引用 引用的概念
在c中新增加了引用的概念#xff0c;引用可以看作一个已定义变量的别名。
引用的语法#xff1a;Type name var;
int main()
{int a 10;int b a;printf(b%d\n, b);printf(中新增加了引用的概念引用可以看作一个已定义变量的别名。
引用的语法Type name var;
int main()
{int a 10;int b a;printf(b%d\n, b);printf(a%d\n, a);b 100;printf(b%d\n, b);printf(a%d\n, a);cout hello endl;system(pause);return 0;
}
输出结果为 引用等于为变量起一个“别名”所以他们都是同一块空间的“门牌号”。
引用做函数参数
普通引用在声明时必须用其它的变量进行初始化
引用作为函数参数声明时不进行初始化
struct Teacher
{char name[64];int age ;
};void printfT(Teacher *pT)
{coutpT-ageendl;
}//pT是t1的别名 ,相当于修改了t1
void printfT2(Teacher pT)
{//coutpT.ageendl;pT.age 33;
}//pT和t1的是两个不同的变量
void printfT3(Teacher pT)
{coutpT.ageendl;pT.age 45; //只会修改pT变量 ,不会修改t1变量
}
void main()
{Teacher t1;t1.age 35;printfT(t1);printfT2(t1); //pT是t1的别名printf(t1.age:%d \n, t1.age); //33printfT3(t1) ;// pT是形参 ,t1 copy一份数据 给pT //--- pT t1printf(t1.age:%d \n, t1.age); //35couthello...endl; system(pause);return ;
}
引用的本质
我们都是引用需要赋一个初值这与const修饰的类型变量特性相同。
而且引用的大小为4个字节。
由此可以知道引用的本质其实是一个指针常量即int *const pp
常引用
在C中可以声明const引用
const Type name var
const引用让变量拥有只读属性 我们可以看到如果没有定义成const的引用是不能指向字面量的因为字面量是没有地址的。
1Const int e 相当于 const int * const e
2普通引用 相当于 int *const e1
3当使用常量字面量对const引用进行初始化时C编译器会为常量值分配空间并将引用名作为这段空间的别名
4使用字面量对const引用初始化后将生成一个只读变量