C语言中的存储类型

329 阅读4分钟

「这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战」。

C语言中的存储类型

C语言中,有两种存储类别:一种是自动类,一种是静态类。局部变量既可以说明成自动类,也可以说明成静态类;而全局变量只能是静态类。对于全局变量可使用extern和static两种说明符

其中auto为隐含存储类别,static为静态存储类别,register是寄存器存储类别。

值得注意的是取地址运算符&不能作用于寄存器变量。

extern、register、static、auto分别是定义外部变量、寄存器变量、静态变量、自动变量,其中,自动变量和寄存器变量属于动态存储,调用时临时分配单元;而静态变量和外部变量属于静态存储,在整个程序运行时间都存在。

C程序函数的形参不可以说明为static型变量。

用extern说明符扩展全局变量的作用域。

未经赋值的全局变量值为零

未经赋值的auto变量值不确定        

未经赋值的register变量值不确定        

未经赋值的静态局部变量值为0        

int a=4;

int f(int n)

{ int t=0; static int a=5;

    if(n%2) {int a=6;  t+=a++;}

    else  {int a=7;  t+=a++;}

    return t+a++;

}

main()

{ int s=a,i=0;

    for(;i<2;i++)  s+=f(i);

    printf("%d\n",s);

}

C语言数据类型。

C语言中长整型数为在数值后加上一个 L 或 l 字符。

整型、浮点型和字符型都属于C语言的基本数据类型,

数字前加"0x"表示十六进制数,

数字前加"0"表示八进制数,

C语言中int 类型

一个int型的常数的值范围为-2^15~(2^15-1),即-32768~32767

C语言的关系运算符

算术运算符包括+、-、*、/、%(模运算符),其中要求%两侧的数据均为整型,其它算术运算符的运算对象可为任意类型的数据。

 C语言中的基本运算符为:+、-、*、/、%,

 

 

C程序中的#include和#define行均不是C语句。

 

C语言中标识符

可以以字母下划线打头 但不能以数字打头;

 

构成C程序的基本单位:是c语言

 

C语言的常量

    C语言的常量分为整型常量、实型常量和字符型常量。用单引号(即撇号)括起来一个字符称为字符常量,字符常量只能包含一个字符,

C语言的强制转换    int  s = (int) b   :将b的类型强制转换为int

逻辑运算符 &&与  || 或

当括号与逻辑运算符混合运算时,其运算优先级为先括号,后逻辑运算符。另外注意"&&"和"||"的"短路"运算。当运算符"&&"左边表达式的值为0时,则右边表达式就不再进行运算,整个表达式的值即为0。

C语言的标识符

C语言的标识符有关键字、预定义标识符、用户标识符三类。

预定义标识符:可用作用户标识符,但失去原有含义  其他标识符不可以;

一个标识符以字母或下划线开始,后跟零个或多个字母、下划线和数字。

    标识符长度是由机器上的编译系统决定的,一般的限制为8字符

 

C语言中整型

整型变量可以分为int型、short型、long型和unsigned型四种  unsigned 为无特殊字母的变量        

 

C语言的全局变量和局部变量

全局变量的作用域是从变量定义的位置开始,到整个源文件结束止。

局部变量的存储单元都是在进入这些局部变量所在的函数体时生成,退出所在的函数体时消失;在函数内部或复合语句内部定义的变量,称为局部变量;

局部变量既可以说明成自动类,也可以说明为静态类(static)

 

C语言的分号

C程序的每一条执行语句都必须用分号";"结束,分号是C语句的一部分,不是语句之间的分隔符。