「这是我参与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语句的一部分,不是语句之间的分隔符。