Linux C语言学习--变量与常量

  • 变量与常量
  1. 变量的定义

C语言中使用变量采用先定义、后使用的规则,任何变量在使用前必须先进行定义。

定义基本形式如下:

说明符(一个或多个)变量或表达式列表

这里的说明符就是包含一些用于表明变量基本类型的关键字、存储类型和作用域。

C语言的变量在程序中用变量名表示。变量名由用户根据其用途任意命名,变量名命名遵从标识符的起名规则(只能由字母\数字\下划线组成且头一个字母只能是字母或下划线. 变量不能是C的特殊字符)

变量在程序中使用时,必须预先说明它们的存储类型和数据类型。

变量说明的一般形式是:

    <存储类型>    <数据类型 >    <变量名> ;

<存储类型>可以是关键词auto、register、static和extern之一;

<数据类型>可以是前面讲的基本数据类型,也可以是后面要讲解的自定义的数据类型.

<变量名>是一个合法的标识符,其前面的32字符有效。

       注意:在上面变量说明的式子里,<变量名>之后有一个分号“;”意味着它是一个语句,该语句我们通常称为变量的说明语句.

自定义数据类型--typedef

typedef 是C语言的关键字,其作用是为一种数据类型定义新名字。这里的数据类型包括内部数据类型(如int、char等)和自定义的数据类型(如struct等)。

基本用法如下:

typedef 数据类型 自定义数据类型

例如,用户可以用一下语句:

Typedef unsigned int u8;

这样,就把标识符u8声明为无符号整型的类型了,之后用户便可以用它来定义变量:

u8 a;

此句等价于:

unsigned int a;

C语言支持四种存储类型:auto, register, static和extern。

 用auto存储类型说明的变量都是局部于某个程序范围内的,只能在某个程序范围内使用,通常在函数体内或函数中的复合语句里。

C语言中,在函数体的某程序段内说明auto存储类型的变量时可以省略关键字auto。

 例如,在函数体中,下列三条语句说明了三个auto存储类型的变量:

   auto int  k ;     //说明一个auto整型的k变量

   int  j ;         //省略了auto,说明一个auto整型的j变量

   double x;      //省略了auto,说明一个auto双精度型的变量

        register称为寄存器型,使用register关键词说明的变量主要目的是想将所说明的变量放入CPU的寄存器存储空间中,这样可以加快程序的运行速度。

  如申请不到就使用一般内存,同 auto ;
  register 存储类型说明变量的方式如以下例子所示:
    register int  count;  
    说明一个存储类型为 register 的整数变量;
        extern 称为外部参照引用型,使用 extern 说明的变量是想 引用在其它文件中函数体外部说明的变量。

   当变量在一个文件中的函数体外说明,所有其他文件中的函数或程序段都可引用这个变量。

  一般用于在函数之间传递数据。

        static称为静态存储类型,在 C 语言中,既可以在函数体内,也可在函数体外说明 static 存储类型的变量。

    在函数体内说明的static 存储类型的变量也是一种局部变量,auto最大不同点是:static存储类型的变量在内存中是以固定地址存放的,而不是以堆栈方式存放的;只要整个程序还在继续运行静态变量就不会随着说明它的程序段的结束而消失,它下次再调用该函数,该存储类型的变量不再重新说明,而且还保留上次调用存入的数值。

         变量初始化的一般形式如下:

<存储类型>   <数据类型>   <变量> = <表达式>   ;

变量的初始化是指变量在被说明的同时赋给一个初值。

例如,

   int     i=0;

   static   double  w=100.56,

   double  result = 1;

   double  x = 5,   y = x*2  ;

   register int count = 0 ;

   auto double s  = 0 ;

2.常量

        常量是指在程序运行期间其数值不会发生改变的数据。

2.1 整型常量

        整型常量通常简称为整数。C语言的整数可以是十进制数、八进制数和十六进制数。例如:十进制的值3356可以有下列三种不同的表示形式:

        十进制:3356

        八进制:06434

        十六进制:0xdlc

2.2 浮点常量

        浮点常量又称为实数,一般含有小数部分。

        在C语言中,实数只有十进制的实数,它又分为单精度实数和双精度实数,它们的表示方法基本相同。实数有两种表示方法,即一般形式和指数形式。

        指数形式的实数一般是有尾数部分、字母e或E的指数部分组成。当一个实数的符号为正号时,可以省略不写,其一般的表示形式如下:

2.3 字符常量

        字符常量是指一个单一字符,其表示形式是由两个单引号包括的一个字符。

        例如:‘a’、‘Q’,‘9’等

        在C语言中,字符常量具有数值。字符常量的值就是该字符对应的ASCII码值。

         例如,char  a, b, u, v ;   // 说明abuv为字符变量

  a = 'F' ;          //  70送给a

  b = 'A'+2;        //  b存放的是 'C' 字符

  u = '  ' + 'B';     //  u存放的是 'b' 字符

  v= 'b' - 32;       //  v存放的是 'B' 字符

它们分别相当于下列运算;

  a= 70;

  b= 65+2;

  u= 32+66 ;

  v= 97-32;

2.4 标识常量

        标识常量是指用标识符代替常量使用的一种常量,其名称通常是一个标识符。

        标识常量也叫符号常量,为了不与一般变量名混淆,表示常量一般使用大写的英文字母标识符,在使用之前必须先预定义,其一般说明形式为:

        #define  <标识常量名称>   <常量>

例如

#define   MAX    50

#define   PI       3.1415926

#define   NULL    0

#define   EOF     -1

#define   ERROR   -1

其中, MAX PI NULL EOF ERROR 都是标识常量, 它们代替的常量分别是 50 3.1415926 0 -1 -1 。这里,每个标识常量说明式子只能给出一个标识常量,并且占据一个书写行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱永不消散

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值