#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
printf("\n------------------------------\n");
for(int i=0;i<5;i++)
{
int a1=6;
//printf("\n------------------------------\na1=%d\n",a1);
//a1=3;
//printf("\n------------------------------\na1+=5 =%d\n",a1+=5);
printf("%d ",a1+=5);
}
printf("\n------------------------------\n");
for(int i=0;i<5;i++)
{
static int a1=6;
//printf("\n------------------------------\na1=%d\n",a1);
//a1=3;
//printf("\n------------------------------\na1+=5 =%d\n",a1+=5);
printf("%d ",a1+=5);
}
for(int i=0;i<3;i++)
{
const int a1=6;
//printf("\n------------------------------\na1=%d\n",a1);
//a1=3;
//printf("\n------------------------------\na1+=5 =%d\n",a1+=5);
printf("%d ",a1+=5);//error: assignment of read-only variable ‘a1’
}
exit(0);
}
static修饰的只被初始化一次,
const 修饰不可修改。报错。error: assignment of read-only variable ‘a1’
输出:


本文通过一个C语言程序示例,详细解析了局部变量、静态变量与常量的作用域及使用特性。展示了不同变量类型在循环中的行为差异,包括局部变量每次循环重新赋值,静态变量仅初始化一次并在后续保持状态,以及尝试修改常量导致的编译错误。

被折叠的 条评论
为什么被折叠?



