如何判断哪些网站开发工具适合用于民宿网站的建设?

摘要:哪个不是网站开发工具,民宿网站建设问卷调查,腾讯企业邮箱登录入口手机,智能小程序WordPress文章目录引用引用概念引用特性引用使用场景常引用内联函数宏的优缺点?C有哪些技术替代宏&#xff1
哪个不是网站开发工具,民宿网站建设问卷调查,腾讯企业邮箱登录入口手机,智能小程序WordPress文章目录引用引用概念引用特性引用使用场景常引用内联函数宏的优缺点#xff1f;C有哪些技术替代宏#xff1f;auto关键字auto不能推导的场景基于范围的for循环(C11)指针空值nullptr(C11)引用 引用概念 引用不是新定义一个变量#xff0c;而是给已存在变量取了一个别名C有哪些技术替代宏auto关键字auto不能推导的场景基于范围的for循环(C11)指针空值nullptr(C11) 引用 引用概念 引用不是新定义一个变量而是给已存在变量取了一个别名编译器不会为引用变量开辟内存空 间它和它引用的变量共用同一块内存空间。(在同一空间上取别名)再从下面的代码和结果中也可以看到就是在同一空间上取了不同的别名。 *引用类型必须和引用实体类型相同 #includeiostream using namespace std;int main() {int a 0;int b a;int c a;printf(%p\n,a);printf(%p\n, b);printf(%p\n, c);return 0; }引用特性 引用在定义时必须初始化 一个变量可以有多个引用 引用一旦引用一个实体再不能引用其他实体 int main() {int a 0;//int b;引用不赋值是行不通的int c a;printf(%p\n,a);printf(%p\n, c);return 0; }引用使用场景 1.做参数 在这里先举一个最简单的例子在刚开始学C语言的时候会有这样一道题就是将两个变量的值进行交换那时也就开始接触指针而今天学习的并不是完全来代替指针的但是使用来简化指针在C当中饮用和指针都是要使用的。 //未使用引用 void swap(int* i, int* j) {int temp *i;*i *j;*j temp; } int main() {int a 1;int b 2;swap(a,b);printf(%d,%d,a,b);return 0; }//使用引用 void swap(int i, int j) {int temp i;i j;j temp; } int main() {int a 1;int b 2;swap(a,b);printf(%d,%d,a,b);return 0; } 在swap函数中的参数ij是主函数a,b的别名 在下面的代码当中是之前学习链表是需要借用到双指针有些复杂SPushBack函数是经过使用引用后的样子相对双指针要简单的。 typedef struct Node {struct Node* next;int val;}Node,*PNode;void SLTPushBack(Node** plist, int i); {} void SPushBack(Node* plist, int i); {} void SPushBack(PNode plist, int i); {}int main() {Node* plist NULL;SLTPushBack(plist, 1);SPushBack(plist, 1);return 0; }做返回值 在接下来会介绍到使用传引用返回和传值的区别之间的效率和性能。 在使用之前传值的方法并不是直接就返回过去了而是栈帧销毁的时候形成了临时变量然后再将临时变量赋值给ret在这个过程当中是有个拷贝的过程这也是影响效率的原因。但是这里的第二段代码的临时变量就有些多余所以就可以使用传引用返回来减少这个拷贝的过程。 int Add(int a, int b) {static int c a b;return c; } int main() {int ret Add(1, 2);cout Add(1, 2) is : ret endl;return 0; }上面的这段代码也就是使用传引用返回的正确写法减少了拷贝的过程并且调用者可以修改返回对象这里ret是c的别名。 注意如果函数返回时出了函数作用域如果返回对象还在(还没还给系统)则可以使用 引用返回如果已经还给系统了则必须使用传值返回。
阅读全文