c – int和意思是什么

c – int和意思是什么,第1张

概述一个C的问题, 我知道 int* foo(void) foo将返回一个指向int类型的指针 怎么样 int &foo(void) 它返回什么? 非常感谢! 它返回对int的引用.引用类似于指针,但有一些重要的区别.我建议您阅读指针,引用,对象和原始数据类型之间的差异. “有效C”和“更有效的C”(由Scott Meyers都有)对差异以及何时使用指针与引用有一些很好的描述. 编辑:有很多答案说,“ 一个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 %d\n",a,b,*p); // Prints 3 4 4int& referencetoA = a;int& referencetoB = b;int& r = referencetoA;r = referencetoB;printf("%d %d %d\n",r); // Prints 4 4 4

行p = pointerToB更改p的值,即现在它指向不同的内存块.

r = referencetoB做了一些完全不同的事情:它将b的值分配给过去的值.它根本不改变r. r仍然是对同一块内存的引用.

差异是微妙但非常重要的.

如果你仍然认为引用只是指针处理的语法糖,那么请阅读Scott Meyers的书.他可以比我能够更好地解释差异.

总结

以上是内存溢出为你收集整理的c – int和意思是什么全部内容,希望文章能够帮你解决c – int和意思是什么所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1253795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存