c++刚入门,关于函数参数的 const 和 volatile 的有关问题
c++刚入门,关于函数参数的 const 和 volatile 的问题在看c++入门教程,看到函数的参数方面的。void fun1(con
c++刚入门,关于函数参数的 const 和 volatile 的问题
在看c++入门教程,看到函数的参数方面的。
void fun1(const int i)
{
这里i是不能改变的,哪为什么还要传参呢?倒不如在这里定义一个局部的,反正都是不能改变的。
}
还有 volatile 的用法。
感觉就直接写个形参不就行了??
这两个关键词有什么好处?特别用处??能不能举个例子??
谢谢,我新接触c++语言。
[解决办法]
不能改变与可从外部拷贝进来,完全没有矛盾啊
[解决办法]
1、const修饰参数非常有意义,尤其是如果传入的是指针,而函数只需要读取它的内容,那么用const的话就不会因为误操作而改写该指针所指向的内容了;
2、volatile在嵌入式领域应用很广,经过它修饰过的变量,编译器不会去作优化,这样可以保证该变量所表明的硬件端口可以被准确的控制,否则比较x=0;x=2;这样的语句,编译器直接就优化为x=2;了,这样相当于少了一次端口操作。
[解决办法]
void fun1(const int i)
{
i = 5; //错!
}
void fun1(const int &i)
{
i = 5; //错! cosnt & 既省油, 安全.
}
void fun1(int &i)
{
i = 5; // 其他方法? int *pi
}
[解决办法]
是的。
[解决办法][解决办法][解决办法][解决办法]为了防止程序员不经意间修改变量,而且i可能是一个其他类或函数的标志
[解决办法]慢慢学 一段时间过后你就会慢慢理解了 顺便接个分