static和const的用处

博客主要提及了static和const的作用,但未展开具体内容。static和const是编程中常用的关键字,了解它们的作用对编程有重要意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

static的作用:

const的作用:

### 静态变量与常量的区别 静态变量(`static`)常量(`const`)在编程语言中有不同的用途行为。 #### `static` 关键字的作用 `static` 主要用于改变作用域生命周期: - **函数内部声明的静态局部变量**:这类变量只初始化一次,在程序运行期间一直存在,直到程序结束。这使得它保留上次调用后的状态[^1]。 - **文件范围内的静态全局变量或函数**:当应用于这些实体时,`static` 将其可见性链接属性限制到定义它们的源文件内,即其他文件无法访问该变量或函数[^2]。 ```cpp // 文件 scope.c 中的例子 #include <stdio.h> static void helperFunction(); // 只能在本文件中使用的函数 static int counter = 0; // 只能被本文件中的代码访问 void publicFunction() { static int callCount = 0; callCount++; printf("publicFunction called %d times.\n", callCount); } ``` #### `const` 关义词的功能 `const` 则主要用于表示不可变的数据对象: - **指针指向的内容为常量**:如果一个指针是指向 `const` 类型,则不允许通过此指针修改所指向的对象内容。然而,指针本身仍然是可更改的,可以使其指向另一个地址。 ```c char a = 'A', b = 'B'; const char *ptr = &a; printf("Value pointed to by ptr: %c\n", *ptr); ptr = &b; // 合法操作;改变了指针指向的位置而非解引用位置处存储的值 printf("Value pointed to by ptr after change: %c\n", *ptr); ``` - **非常量指针指向常量数据**:这种情况下,虽然可以通过重新赋值给指针来让它指向新的内存区域,但是不能够经由这个指针去变更其所指代的数据项。 ```c int num = 42; const int* pNum = &num; // 下面这条语句会引发编译错误因为试图修改 const 对象 //*pNum = 50; ``` 综上所述,`static` `const` 的主要差异在于前者侧重于控制符号的作用域以及延长某些类型的生存期,而后者强调的是保护特定资源免受意外变动的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值