(c语言零基础入门到精通)(c语言零基础入门到精通全套指针)

变量

整型变量

整型变量是用来存储整型数值的变量。整型变量可以分为6种类型,其中基本类型的符号使用int关键字,在此基础上可以根据需要加上一些符号进行修饰,如关键字short或long。下表

是这6种类型的介绍。

(c语言零基础入门到精通)(c语言零基础入门到精通全套指针)

实型变量

实型变量也称为浮点型变量,是指用来存储实型数值的变量,其中实型数值是由整数和小数两部分组成的。实型变量根据实型的精度也可以分为3种类型,包括单精度类型、双精度类型和长双精度类型。下表是这3种类型的介绍。

(c语言零基础入门到精通)(c语言零基础入门到精通全套指针)

字符型变量

字符型变量是用来存储字符常量的变量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。字符型变量在内存空间中占一个字节,取值范围是-128~127。 定义一个字符型变量的方法是使用关键字char,例如要定义一个字符型的变量cChar,为cChar变量赋值为‘a’的方法如下:

char cChar; /*定义字符型变量*/

cChar= 'a'; /*为变量赋值*/

变量的储存类别

动态存储与静态存储

从变量的产生时间上可以分为静态存储和动态存储。静态存储就是指程序运行分配的固定的存储方式,而动态存储则是在程序运行期间根据需要动态地分配存储空间。

1.auto变量

auto关键字就是修饰一个局部变量为自动的,这意味着每次执行到定义该变量的时候,都会产生一个新的变量,并且对其重新进行初始化。

2.static变量

static变量为静态变量,将函数的内部和外部变量声明成static变量的意义是不一样的(有关函数的内容在本书的后续章节进行介绍)。不过对于局部变量来说,static变量是和auto变量相对而言的。尽管两者的作用域都是仅限于声明变量的函数之中,但是在语句块执行期间,static变量将始终保持它的值,并且初始化操作只在第一次执行时起作用。在随后的运行过程中,变量将保持语句块上一次执行时的值。

3.register变量

register变量称为寄存器存储类变量。使用register的目的在与让程序员指定把某个局部变量存放在计算机的某个硬件寄存器而不是内存中。这样的好处是可以提高程序的运行速度。不过,这只是反映了程序员的主观意愿,实际上编辑器可以忽略register对变量的修饰。

用户无法获得寄存器变量的地址,因为绝大多数计算机的硬件寄存器都不占用内存地址。而且,即使编译器忽略register而把变量存放在可设定的内存中,也是无法获取变量的地址的。

如果想有效地利用寄存器register关键字,必须像汇编语言程序员那样了解处理器的内部结构,知道可用于存放变量的寄存器的数量、种类以及工作方式。但是,在不同的计算机对于这些细节可能是不同的,因此,对于一个要具备可移植的程序来说,register的作用并不大。

4.extern变量

extern变量称为外部存储变量。extern声明了程序中将要用到但尚未定义的外部变量。通常,外部存储类都用于声明在另一个转换单元中定义的变量。

一个工程是由多个C文件组成的。这些源代码文件分别编译,然后链接成一个可执行模块。把这样的一个程序作为一个工程进行管理,并且生成一个工程文件来记录所包含的所有源代码文件。

混合运算

不同类型之间可以进行混合运算,例如10+'a'-1.5+3.2*6。

在进行这样的计算时,不同类型的数据要先转化成同一类型,然后进行运算。转化的方式如图所示

(c语言零基础入门到精通)(c语言零基础入门到精通全套指针)

表达式

函 数 概 述

表达式是C语言的主体。在C语言中,表达式由操作符和操作数组成。最简单的表达式可以只含有一个操作数。根据表达式含有的操作符的个数,可以把表达式分为简单表达式和复杂表达式两种:简单表达式是只含有一个操作符的表达式,而复杂表达式是包含两个或两个以上操作符的表达式。

下面通过几个表达式进行观察:

5+5

iNumber+9

iBase+(iPay*iDay)

表达式本身什么事情也不做,只是返回结果值。在程序不对返回的结果值进行任何操作的情况下,返回的结果值不起任何作用,也就是忽略返回的值。

表达式产生作用有两种情况:

a.放在赋值语句的右侧。

b.放在函数的参数中。

表达式返回的结果值是有类型的。表达式隐含的数据类型取决于组成表达式的变量和常量的类型。

复制运算符与表达式

1.变量赋初值

在声明变量时,可以为其赋一个初值,就是将一个常数或者一个表达式的结果赋值给一个变量,变量中保存的内容就是这个常量或者赋值语句中表达式的值。这就是为变量赋初值。

1.先来看一下为变量赋值为常数的情况。一般的形式是:

类型 变量名 = 常数;

其中的变量名也称为变量的标识符。通过变量赋初值的一般形式,以下是相关的代码实例:

char cChar ='A';

int iFirst=100;

float fPlace=1450.78f;

2.赋值表达式为变量赋初值。

赋值语句把一个表达式的结果值赋给一个变量。一般的形式是:

类型 变量名 = 表达式;

可以看到,其一般形式与常数赋值的一般形式是相似的,例如:

int iAmount= 1+2;

float fPrice= fBase+Day*3;

在上面的举例中,得到赋值的变量iAmount和fPrice称为左值,因为它出现的位置在赋值语句的左侧。产生值的表达式称为右值,因为它出现的位置在表达式的右侧。

【实例】 为变量赋初值。为变量赋初值的操作是编程时常见的操作。在本实例中,模拟钟点工的计费情况,使用赋值语句和表达式得出钟点工工作8个小时后所得的薪水。

(c语言零基础入门到精通)(c语言零基础入门到精通全套指针)

运行结果

(c语言零基础入门到精通)(c语言零基础入门到精通全套指针)


2.自动类型转换

数值类型有很多种,如字符型、整型、长整型和实型等,因为这些类型的变量、长度和符号特性都不同,所以取值范围也不同。混合使用这些类型时会出现什么情况呢?第3章已经对此有所介绍。

C语言中使用一些特定的转化规则。根据这些转化规则,数值类型变量可以混合使用。如果把比较短的数值类型变量的值赋给比较长的数值类型变量,那么比较短的数值类型变量中的值会升级表示为比较长的数值类型,数据信息不会丢失。但是,如果把较长的数值类型变量的值赋给比较短的数值类型变量,那么数据就会降低级别表示,并且当数据大小超过比较短的数值类型的可表示范围时,就会发生数据截断。

有些编译器遇到这种情况时就会发出警告信息,例如:

float i=10.1f;

int j=i;

此时编译器会发出警告,如图所示。

(c语言零基础入门到精通)(c语言零基础入门到精通全套指针)

3.强制类型转换

通过自动类型转化的介绍得知,如果数据类型不同,就可以根据不同情况自动进行类型转化,但此时编译器会提示警告信息。这个时候如果使用强制类型转化告知编译器,就不会出现警告。

强制类型转化的一般形式为:

(类型名) (表达式)

例如在上述不同变量类型转化时使用强制类型转化的方法:

float i=10.1f;

int j= (int)i;/*进行强制类型转化*/

在代码中可以看到在变量前使用包含要转化类型的括号,这样就对变量进行了强制类型转化。

【实例】 显示类型转化的结果。在本实例中,通过不同类型变量之间的赋值,将赋值操作后的结果进行输出,观察类型转化后的结果

(c语言零基础入门到精通)(c语言零基础入门到精通全套指针)

运行结果

(c语言零基础入门到精通)(c语言零基础入门到精通全套指针)

建议大家从第一节开始学起课后多做练习试试照着实例自己写下,点击标题下我的头像即可查看往期内容,如有疑问或建议请在留言区留言.

需要VC6软件的私信我.

(c语言零基础入门到精通)(c语言零基础入门到精通全套指针)

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者已然影视所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(c语言零基础入门到精通)(c语言零基础入门到精通全套指针)
本文链接:https://www.51qsb.cn/article/m85qn.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-05-26
下一篇2023-05-26

你可能还想知道

发表回复

登录后才能评论