gpt4 book ai didi

c - 为什么我们不经常使用 const?

转载 作者:行者123 更新时间:2023-12-01 23:15:13 26 4
gpt4 key购买 nike

经常看到带有指针的关键字 const :

void function(const char *string)
{
const char *other_string = "some string";
}

但是,为什么我们不在每次声明一个我们不会更改的变量时都使用 const 呢?难得一见:

void function(const int i)
{
const double j = 1.2;
// i and j will not be changed in this function
}

我试图理解为什么我们不经常使用 const,在可以的时候使用它总是一件好事吗? This post似乎回答是,但实际上并非如此......

最佳答案

在大多数情况下,它不再产生影响。

编译器通常能够推断出该变量实际上是只读的,并在优化期间将其视为常量。

无论哪种方式,您通常在 const char *string 之类的东西上使用 const 以避免意外修改参数。

由于所有参数都是按值传递的,因此对于整数来说这不是不可能发生的事情。仅对于指针,指针本身就是值。

实际上,const char *string 也不是完全常量。只有指针指向的 char 是,但作为变量的指针不是。它只会在将其指定为 const char * const string 时变为。现在 string 变量在函数范围内完全不变。

关于c - 为什么我们不经常使用 const?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46622436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com