当前位置:文档之家› C语言程序设计第二章-常用数据类型

C语言程序设计第二章-常用数据类型

第二章常用数据类型【学习目标】本章将学习一些基本的程序概念,如程序结构、标识符、章的学习要关键字和注释等。

本点包括如下几点:(1)了解C语言的基本结构。

(2)分号、块和空白的使用。

(3)标识符的约束规则。

(4)C关键字。

(5 )直接量的认识。

(6)注释的使用。

【学习导航】本章的在整个课程中的位置如图2-1所示。

图2-1 本章学习导航2.1 C语言基本程序结构任何一种程序设计语言都具有特定的语法规则和规定的表达方法。

一个程序只有严格按照语言规定的语法和表达方式编写,才能保证编写的程序在计算机中能正确地执行,同时也便于阅读和理解。

为了了解C语言的基本程序结构,请看【课堂案例2-1】。

【课堂案例2-1】在控制台输出“你好”。

【案例目标】会使用Xcode编辑器实现字符串输出【案例知识要点】C语言的程序结构、基本输出语句【案例程序代码】hello.c1#i nclude <stdio.h>22mai n()3{4printf(你好”);5}【案例代码说明】第1行的作用是进行相关的预处理操作。

include成为文件包含命令,<>里的内容称为头文件。

头文件一般的扩展名为.ho stdio就是指“ sta ndard in put & output"(标准输入输出),所以,源代码中如用到标准输入输出函数时,就要包含这个头文件。

第2行是一个空行。

空行不会影响程序的功能。

空行起着分隔程序段落的作用,适当使用空行将使程序的布局更加清晰,提高程序的可读性。

空行不会浪费内存,所以不要舍不得用空行。

一般建议在头文件后插入一个空行。

第3行声明了一个main函数,main是函数名。

关于函数的详细介绍在第七章。

main函数具有特殊意义,它是程序执行的入口,也就是说,程序都是从main函数开始执行的。

第4—6行定义了main函数的内容,称为函数体。

以“{”开始,以“ }”结束。

第5行调用了在stdio.h中的格式化输出函数printf,其作用是向终端(显示器、控制台)输出字符。

在这一行结束时,需要加上(;)。

在C语言中,一行代码由分号(;)终止。

图2-2是程序hello.c的执行结果:图2-2 Simple.c程序输出结果知识链接一编程规范在hello.c程序中,要注意以下的编程规范:【规则1-1】用#“clude <filename.h>格式来引用标准库的头文件。

【规则1-2】包含头文件时一般不使用绝对路径名。

【规则1-3】在头文件和main函数之间使用空行隔开。

【规则1-4】函数体里面的内容(即{ }里面的内容),需要水平缩进四个空格。

如第5行所示。

hello.c试一试(一):仓U建triangle.c,输出一个三角形,运行效果如图2-3所示。

2.2标识符标识符是指程序中函数、变量、参数的名称。

C语言要求标识符必须符合如下命名规则:标识符的首字母必须是字母、下划线(_)除首字母外,标识符的其他位置可以是数字(0-9)、大写字母(A-Z ),小写字母(a-z),下划线(_)。

标识符是大小写区别对待的,也就是说test、Test、TEST是三个不同的标识符。

标识符未规定最大长度。

关键字和保留字(参见 2.3关键字)不能作为标识符。

表2-1将正确和错误的标识符进行了对比,并说明了错误的原因:标识符命名的编程规范如下:【规则1-5】标识符的命名需具有相关的含义,这样做的好处是以后进行回顾或他人阅读时,容易理解程序的含义。

比如要定义一个人的年龄,可以使用age这个标识符,而不要使用a。

2.3关键字C语言中的关键字是程序代码中的一些特殊字符。

每个关键字都有特殊的用途。

C语言一共有32个关键字。

表2-3列出了使用在C编程语言中的关键字。

2.4注释你如果想让你的程序很容易让人读懂,或者为了方便以后的维护,那么你可以通过为程序添加注释来做到这一点。

注释的作用是:用来解释程序代码的含义。

C语言的注释分为多行注释和单行注释两种:多行注释:/*注释内容*/单行注释://注释内容C语言注释通常用于3处:版本、版权的声明函数接口说明重要代码行提示可以修改hello.c程序,添加如下注释:/**Copyright (c) 2013,ZZAATCE*All rights reserved.*FileName : hello.h*Author: Csg*/#i nclude <stdio.h>main (){// 向控制台输出“你好”printf( 你好');}2.5变量和常量的基本概念2.5.1变量1.变量的声明在学生管理系统中,系统中的一个最重要的角色是学生,对学生来说,应该有姓名,年龄等这些属性。

如何来表示这些属性呢?这就要用到变量。

变量是一块取了名字的、用来存储C 程序信息的内存区域;它是一些有意义的数据。

比如我们可以用变量名(也是一种标 识符)name 来表示姓名,age 来表示年龄。

在 C 语言中要使用变量必须要先定义(也叫做 声明变量)。

定义变量是指设定变量的数据类型(参看 2.5节)和变量的名称。

基本语法为:数据类型变量名;例如下面的代码:int age ;上面的代码声明了一个变量 age,它的数据类型是int 类型。

变量名需遵守【规则【规则1-6】变量名首字母小写,其后每个英文单词的第一个字母大写,其它小写。

例如stude ntName 。

2•变量的赋值在声明了一个变量后,还没有给变量赋值,可以通过“age = 20 ;]上面的代码中20就是变量age 的值。

系统会分配一个长度为4字节(int 类型占4字节)的内存单元 来保存“ 20”这个数据,如图2-4所示。

我们在程序中可以改变20这个值:age = 40 ;这时age 的值就变成了 40 (如图3-3所示) 为它的值是“可变的”。

2.5.2常量常量是指在程序运行时其值不能改变的量。

常量可为任意数据类型(目前我们只使用过int 类型,其他的类型参加本章的 2.6节),比如:100是一个整型常量。

''是一个字符型 常量。

C 语言还支持另一种预定义数据类型的常量,这就是串。

所有串常量括在双撇号之间, 例如"This is a test"。

切记,不要把字符和串相混淆,单个字符常量是由单撇号括起来的,如 'a '。

整体上,C 语言的常量可分为 3大类:数值型常量:又可以分为整型常量和实型常量 字符常量 符号常量2.6数据类型在定义变量时涉及到了数据类型,为什么会要用到数据类型呢?因为计算机里面保存一个数字或者一个字母,都是需要分配一定的空间,内存空间的最小单位是比特(bit),也可以称为“位”。

8个比特为一个字节(byte)。

现在常见的PC ,用两个字节空间来保存一个字母, 用四个字节保存一个整数。

为了保存不同的数字或者字母, 我们在申请空间的时候就要告诉计算机,是要保存什么1-6】。

”操作符赋值,如下面的代码:,这也是为什么 age 被称为变量的原因,因age图2-5 age 变量修改值的内存图图2-4 age 变量初始赋值后的内存图样的变量。

而计算机会根据这个类型,分配一定尺寸的内存给用户。

也就是说你声明的数据类型是计算机给后面的变量分配内存空间的依据。

C语言把数据类型分为基本类型、构造类型、指针类型和空类型。

如图2-6所示。

本节只介绍基本类型。

2.7整型数据2.7.1整型常量整型常量及通常理解的整数值。

在C语言中可以用3种进制来表示整型常量,分别如下:(1 )十进制:基数为10。

最常用的一种。

当需要使用十进制表示整数时,无需任何前缀。

例如:(2)八进制:基数为8。

即满8进1。

当需要使用八进制表示整数时,需要在该数的前面加上前缀0。

例如:int seve n = 07;下面的语句会输出什么呢?int v1 = 010;prin tf("%d",v1);输出结果为:8。

【说明】由于八进制表示数时容易引起混淆,如int v = 010表示的是8而不是我们第一感觉的10,所以尽可能少使用八进制来表示数。

(3)十六进制:由0〜9、a、b、c、d、e、f十六个符号构成。

其中a表示10, b表示11,以此类推。

当用十六进制表示整数,要在该数前面加上前缀0x。

例如:2.7.2整型变量整型变量是用来存储整型数值的变量。

共有6种类型。

signed short int有符号短整型简写为short或int,字长为2字节共16位二进制数,数的范围是-32768~32767。

取值计算原理是一共有216=65536个数,其中负整数有215=32768 个,正整数2 -1=32767个,再加上一个0, 一共65536个。

signed long int有符号长整型简写为long,字长为4字节共32位二进制数,数的范围是-2147483648~2147483647。

unsigned short int无符号短整型简写为unsigned int,字长为2字节共16位二进制数,数的范围是0~65535。

unsigned long int无符号长整型简写为unsigned long,字长为4字节共32位二进制数,数的范围是0~4294967295。

使用有符号基本整型变量的例子:int x; //定义了一个有符号基本整型变量x = 100; //给变量赋值也可以在定义变量的同时给它赋值:int x = 100;使用有符号短整型变量的例子:short y = 10;如果一个整型变量赋值超过它的取值范围,就会发生溢出的问题。

请看【课堂案例2-2】【课堂案例2-2】测试数据溢出【案例学习目标】理解整型变量的取值范围【案例知识要点】数据取值范围、数据溢出【程序代码】dataOverflow.c1#i nclude <stdio.h>2mai n()3{4short x = 32767;5short y = x + 1;66prin tf("%d\n" ,x);7prin tf("%d\n" ,y);8}【程序输出】如图2-7所示。

【程序说明】第4行给无符号短整型变量x赋值32767,这是无符号短整型变量的最大值。

第5行定义了无符号短整型变量y,并赋值x+1。

注意x已经是无符号短整型变量的最大值。

第6行输出x的值为32767。

14第7行输出y的值为-32768 。

2知识链接一数据溢出计算机用二进制表示数据。

无符号短整型在内存中占2个字节。

1个字节为8位,一共16位。

最高位为符号位,0表示正数,1表示负数。

32767=2 15-1 ,所以dataOverflow.c 中定义的变量x的值在内存中的存储如下:最高位为1表示负数,所以这个数的值为-215= -32768。

相关主题