c语言 const

static const int k=3;
k是一个静态存储类型的整型常量.const限定了k的类型,我们可以对k进行初始化,但以后不能对k赋值,增量或减量.

const限定的变量与符号常量是不等价的,不可以描述数组的大小
不能把由const限定的变量的地址赋值给非限定的指针.

### C语言 `const` 关键字的使用方法 #### 定义不可变数据 `const` 关键字用于声明那些在程序执行期间不允许改变的数据。一旦初始化完成,这些数据就不能再被修改[^1]。 #### 应用场景 - **常量变量**: 可以用来替代预处理器宏定义(`#define`),因为它们提供了更强类型的检查和更好的调试支持。 - **参数传递保护**: 当作为形参时, 表明此参数不会在函数内部发生更改;当返回值是指针或引用的时候,则表示所指向的对象不应通过这个指针/引用来改动对象的内容[^3]. - **提升性能**: 对于编译器而言,知道某个特定内存位置上的数值在整个应用程序生命周期内都不会发生变化意味着可以在某些方面进行优化处理,例如把这样的值放在只读区域里[^4]. #### 示例代码展示 下面的例子展示了如何利用 `const` 来创建一个简单的整型常数,并尝试对其进行赋值操作: ```c #include <stdio.h> int main(void){ const int MAX_SIZE = 10; // 下面这条语句将会引发错误,因为我们试图改变了一个已声明为 'const' 的变量 //MAX_SIZE = 20; printf("The maximum size is %d.\n", MAX_SIZE); } ``` 另一个例子涉及到了指针与 `const` 结合使用的场合: ```c void exampleFunction(const char* strPtr){ /* 这里的strPtr是一个指向字符数组(字符串)的指针, 被标记为了const,因此我们不能经由它去修改原字符串 */ while(*strPtr != '\0'){ putchar(*strPtr++); } } // 或者像这样定义一个指向常量的指针 char message[]="Hello"; const char *ptr=message; /* ptr本身不是常量,它可以重新指向其他地方; 不过它现在指向的是message的第一个元素, 并且不能经过ptr来改写message中的任何一个字母*/ ``` 上述两个实例分别体现了直接将整个变量设为常量以及仅限定了间接访问路径的情况下的不变性质[^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值