① static在c语言中是什么意思
static在c语言中是“静态”的意思,用于在函数中声明“静态变量”用,在每一次调用后,该变量并不在函数返回时立即释放,变量中保存的值,可以保留到下一次调用时继续有效。
② C语言动态变量和静态变量的区别
一、形式不同:
静态变量是在定义的时候,有static 修饰的变量,形式为static TYPE var_name = init_value;
动态变量,形式为TYPE var_name = init_value;即没有static 修饰,其中的=init_value均可省略。
二、作用不同:
动态全局变量:作用域为整个项目,即最终编译成可执行文件的所有文件中均可以使用动态全局变量,生命周期为从程序运行到程序退出,即贯穿整个运行时间。
静态全局变量:作用域为当前文件,从定义/声明位置到文件结尾,生命周期为从程序运行到程序退出,即贯穿整个运行时间。
常量使用
静态变量也可以用于存储常数。具体来说,静态变量(全局变量及汇编语言里定义的符号亦同)可用const,constant或final(根据语言决定)等关键字标识,这时其值就会在编译时设定,并且无法在运行时改变。
编译器通常将静态常量与文本一起置于目标文件的文本区域,而非常量初始化数据则置于数据区;而如若有需要,有些编译器还可选择为其开辟专用区;为防止常数变量被错误的指针写入覆盖,亦可在这块区域启用内存保护机制。
以上内容参考:网络-静态变量
③ C语言中类型标识符有哪些
C语言中的标识符
1) 标识符由字母、数字、下划线“_”组成,并且首字母不能是数字.
2) 不能把C语言关键字作为标识符.
3) 标识符长度限制8字符.
(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实大部分工业标准都更长)。
4) 标识符对大小写敏感.
5)标识符命名应做到“见名知意”
下面的标识符名是合法的:
year,Day,ATOK,x1,_ CWS,_change_to
而下面的标识符名是不合法的:
#123,.COM,$100,1996Y,1_2_3,Win3.2
如果你问的是关键字的话,参考下面的内容:
auto :声明自动变量
short :声明短整型变量或函数
int: 声明整型变量或函数 long :声明长整型变量或函数
float:声明浮点型变量或函数
double :声明双精度变量或函数
char :声明字符型变量或函数
struct:声明结构体变量或函数
union:声明共用数据类型
enum :声明枚举类型
typedef:用以给数据类型取别名
const :声明只读变量
unsigned:声明无符号类型变量或函数
signed:声明有符号类型变量或函数
extern:声明变量是在其他文件正声明
register:声明寄存器变量
static :声明静态变量
volatile:说明变量在程序执行中可被隐含地改变
void :声明函数无返回值或无参数,声明无类型指针
if:条件语句
else :条件语句否定分支(与 if 连用)
switch :用于开关语句
case:开关语句分支
for:一种循环语句
do :循环语句的循环体
while :循环语句的循环条件
goto:无条件跳转语句
continue:结束当前循环,开始下一轮循环
break:跳出当前循环
default:开关语句中的“其他”分支
sizeof:计算数据类型长度
return :子程序返回语句(可以带参数,也可不带参数)循环条件
④ C语言的标识符可分为哪些
在C语言中,标识符是对变量名、函数名、标号和其他各种用户定义的对象命名。标识符的第一个字符必须是字母或下划线,随后的字符可以是字母、数字或下划线。
标识符的长度可以是一个或多个字符,最长不允许超过32个字符。例如:
sore、number12、student_name等均为正确的标识符;
8times、price/tea、low!valume等均为不正确的标识符。
C语言中字母是区分大小写的,因此score、Score、SCORE分别代表三个不同的标识符,必须注意的是,标识符不能和C语言的关键字相同,也不能和用户自定义的函数或C语言库函数同名。
⑤ c语言中静态变量是怎么用的
c语言中静态变量作常量使用,用于存储常数。可用const,constant或final等关键字标识,其值就会在编译时设定,并且无法在运行时改变。编译器通常将静态常量与文本一起置于目标文件的文本区域,而非常量初始化数据则置于数据区;而如若有需要,有些编译器还可选择为其开辟专用区。
对于静态全局变量来说,针对某一源文件的以static声明的文件级变量与函数的作用域只限于文件内(只在文件内可见),也即“内部连接”,因而可以用来限定变量的作用域。
(5)静态变量标识符c语言扩展阅读:
在函数内以static声明的静态局部变量虽然与自动局部变量的作用域相同(即作用域都只限于函数内),但存储空间是以静态分配而非默认的自动分配方式获取的,因而存储空间所在区域不同。
一般来说,静态分配时存储空间于编译时在程序数据段分配,一次分配全程有效;而自动分配时存储空间则是于调用栈上分配,只在调用时分配与释放,且两次调用间变量值始终保持一致;必须注意,静态局部变量只能初始化一次,这是由编译器来保证实现。