一、变量名与变量值 函数
变量名其实是一个符号地址。程序编译时,系统给变量开辟该变量对应类型所需的内存空间(用于存储变量值),而后由系统创建一个从变量名到该内存空间的首地址的映射,这样就能够经过变量名访问到变量值了。
变量名由数字、字母和下划线组成。大小写敏感,不能以数字开头。变量名的长度(字符个数)没有硬性的规定,只是不一样的C编译器可能会有不一样要求。
C语言中,使用变量以前必须定义该变量,不然编译出错。定义变量时须写明变量所属类型。程序编译时,会根据变量的类型来决定为该变量开辟多大的内存空间,同时还能够检查运算的合法性。好比实型数据之间不能作求余数的操做。
二、整型数据 生命周期
C语言中,整型数据的类别有三种:short,int,long;属性有两种:signed,unsigned。共有六种组合。
整型数据类型的长度:C标准没有硬性规定每种类型的长度,只是规定:long的长度要不小于int;short的长度不大于int。通常的C编译器都会以一个机器字的存放一个int型数据。
三、变量初始化 内存
变量的初始化不是在编译期间完成内存空间的分配(只有静态变量和外部变量是在编译期间初始化),而是在程序运行时执行函数时才赋值。 作用域
四、格式输入&输出 字符串
%md,%mc,%ms(m为正整数):m的大小决定了输出内容的宽度,当输出内容的长度小于m时,输出内容右对齐,左补空格;当输出内容的长度大于m时,输出内容不受m的限制,原样输出。
%-md,%-mc,%-ms:用法同上,只是输出内容左对齐,右补空格。
%m.nf,%m.ns :m控制输出内容的总宽度,对于实型数据来讲小数点也算一位,当输出内容的实际宽度大于m时突破m的限制;%m.nf中的n控制小数位的位数,%m.ns中的n表示截取字符串的左n位,若n小于m则左补空格。 编译器
%0md:输出m位的整型数值,若是被输出的数据位数小于m时,前补0 编译
五、C语言的变量的存储类型 变量
C语言的变量存储类型有不少种分法,根据生命周期来分可分为:动态变量和静态变量;根据使用域来分可分为:局部变量和全局变量(又叫内部变量和外部变量) 数据类型
a)、动态变量和静态变量。 程序
动态变量------变量所占空间是动态分配的,即只有到使用到某个变量时,才动态的给该变量分配内存空间,用完后还要及时收回。好比函数的形参及函数内的局部变量。其代码表现形式为关键字"auto" +变量类型名+变量名,通常状况下关键字"auto"省略不写。也就是说咱们平时用得最多的就是动态变量。动态变量存放于内存的栈区和堆区。
静态变量------变量所占空间是静态的,即程序自始至终一直存在。代码表现形式为关键字"static"+变量类型名+变量名,静态变量的初始化是在编译期完成的,且只初始化一次,程序执行时再也不对静态变量进行赋初值。
b)、局部变量和全局变量(又叫内部变量和外部变量)
局部变量------定义在函数体内部的变量,因此又叫内部变量。其做用域仅限于声明该局部变量的函数体内部。程序运行时,在动态存储区为局部变量分配空间(静态局部变量除外)。
通常状况下使用的局部变量都是动态变量,但并不表示没有静态的局部变量。静态局部变量由于是静态的因此会被存在静态存储区,这就意味着即便函数调用结束,它的值还仍然存在。利用这一特性咱们能够用静态局部变量来保留函数上一次的执行结果
全局变量------定义在函数体外部的变量,因此又叫外部变量。其做用域为该全局变量的声明处一直到程序结束。与局部变量不一样的是,全局变量存在静态存储区,在编译期就被分配空间。