c – int和意思是什么
发布时间:2020-12-16 03:12:55 所属栏目:百科 来源:网络整理
导读:一个C的问题, 我知道 int* foo(void) foo将返回一个指向int类型的指针 怎么样 int foo(void) 它返回什么? 非常感谢! 解决方法 它返回对int的引用.引用类似于指针,但有一些重要的区别.我建议您阅读指针,引用,对象和原始数据类型之间的差异. “有效C”和“更
一个C的问题,
我知道 int* foo(void) foo将返回一个指向int类型的指针 怎么样 int &foo(void) 它返回什么? 非常感谢! 解决方法
它返回对int的引用.引用类似于指针,但有一些重要的区别.我建议您阅读指针,引用,对象和原始数据类型之间的差异.
“有效C”和“更有效的C”(由Scott Meyers都有)对差异以及何时使用指针与引用有一些很好的描述. 编辑:有很多答案说,“参考只是语法糖,更容易处理指针”的一些事情.他们肯定不是. 请考虑以下代码: int a = 3; int b = 4; int* pointerToA = &a; int* pointerToB = &b; int* p = pointerToA; p = pointerToB; printf("%d %d %dn",a,b,*p); // Prints 3 4 4 int& referenceToA = a; int& referenceToB = b; int& r = referenceToA; r = referenceToB; printf("%d %d %dn",r); // Prints 4 4 4 行p = pointerToB更改p的值,即现在它指向不同的内存块. r = referenceToB做了一些完全不同的事情:它将b的值分配给过去的值.它根本不改变r. r仍然是对同一块内存的引用. 差异是微妙但非常重要的. 如果你仍然认为引用只是指针处理的语法糖,那么请阅读Scott Meyers的书.他可以比我能够更好地解释差异. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |