C语言程序设计谭浩强版 一

2024-03-28 02:18

本文主要是介绍C语言程序设计谭浩强版 一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本章的一些概况这里就不说了,直接进入细节的学习!


3.1、C的数据类型



数据类型分为:基本类型、构造类型、指针类型、空类型

基本类型又分为:整型、字符型、实型(浮点型:又分为单精度型、双精度型)、

                            枚举类型

构造类型又分为:数组类型、结构体类型、共用体类型






3.2、常量和符号常量


在程序运行过程中,其值不能被改变的量成为常量。

常量区分为不同类型,如12、0、-3为整型常量,4.6、-1.23为实型常量,‘a','b'为字符

常量

例3.1 符号常量的使用

#include<stdio.h>
/* 符号常量的使用 */
#define PRICE 30
int main(void)
{int num,total;num = 10;total = num*PRICE;printf("total = %d\n",total);
}

上面的例子介绍了符号常量的使用,使用define来定义的,再后面的学习中,我们会详细的介绍它的使用方法。

习惯上,符号常量名用大写,变量名用小写,以示区别。

使用符号常量的好处是:

1、含义清楚,我们可以用见名知意的方式来定义符号常量,以免在程序中出现很多常

     数,搞不清楚各个常数究竟代表什么意思。

2、在需要改变一个常量时能做到一改全改。如,上面例子中我可以只修改

     #define PRICE 35,我就可以修改整个程序中所有出现PRICE的地方的值


3.2.1 变量


其值可以改变的量称为变量。

标识符,简单的地说就是一个名字,C语言规定,标识符只由字母,数字和下划线三种字符组成,且第一个字符必须是字母或者下划线

在C语言中,要求对所有用到的变量做到强制定义,也就是先定义,后使用。

1、凡未被事先定义的,不作为变量名,这就能保证程序中变量名使用的正确

2、每一个变量被指定为一确定类型,在编译时就能为其分配相应的存储单元。

3、指定每个变量属于一个类型,这就便于在编译时,据此检查该变量所进行的

      运算是否合法

例如:a b都为整型变量,可以进行求余运算,若是a b中有实型变量,则不允许进行求余运算。



3.3、整型数据


3.3.1  整型常量的表示方法


十进制:如 123、 -456等

八进制:以数字0开头,如0123、-011

十六进制:以0x开头,如0x123、-0x12


3.3.2  整型变量


1、整型数据在内存中的存放形式


数据在内存中是以二进制补码的形式存放的,一个正数的补码和其源码的形式相同,负数的补码是该数的绝对值的二进制形式,按位取反再加1.整型变量在内存中占的字节数取决于编译器,本书以Turbo C为例,一个整型变量占2个字节。


我们列举如下的例子,来看一下整型变量在内存的实际存放情况,定义两个整型变量10和-10


int i,j;

i = 10;

j = -10;


整数10 在内存中的存储情况如下图

-10的存储情况如下




数由此可知,在整数的16位当中,最左面的一位是表示符号的,该位为0,表示正,为1表示负。




2、整型变量的分类


下表列出了Turbo C中各类整型量所分配的内存字节数及数的表示范围。



3、整型变量的定义


对变量的定义,一般是放在一个函数的开头部分的声明部分。我们举例来说明一下整型变量的定义和使用

#include<stdio.h>
int main(void)
{int a,b,c,d;unsigned u;a = 12;b = -24;u = 10;c = a + u;d = b + u;printf("a + u = %d,b + u = %d\n",c,d);
}


4、整型变量的溢出


我们知道,一个有符号的整型变量允许的最大值为32767,如果我们再加1会出现什么情况呢?我们用下面的例子来看一下。

#include<stdio.h>
int main(void)
{int a,b;a = 32767;b = a + 1;printf("%d %d\n",a,b);
}

在Turbo C中计算b的结果为-32768,表明数据溢出后,会调到整型变量能表示的最小值。

注:实际情况并不是这样的,现在的编译器都很聪明,它会告诉你,你定义的数据超出了整型变量的表示范围,并不会出现溢出的情况






这篇关于C语言程序设计谭浩强版 一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/854156

相关文章

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

C语言字符函数和字符串函数示例详解

《C语言字符函数和字符串函数示例详解》本文详细介绍了C语言中字符分类函数、字符转换函数及字符串操作函数的使用方法,并通过示例代码展示了如何实现这些功能,通过这些内容,读者可以深入理解并掌握C语言中的字... 目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2st

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点

基于Python实现多语言朗读与单词选择测验

《基于Python实现多语言朗读与单词选择测验》在数字化教育日益普及的今天,开发一款能够支持多语言朗读和单词选择测验的程序,对于语言学习者来说无疑是一个巨大的福音,下面我们就来用Python实现一个这... 目录一、项目概述二、环境准备三、实现朗读功能四、实现单词选择测验五、创建图形用户界面六、运行程序七、

使用Go语言开发一个命令行文件管理工具

《使用Go语言开发一个命令行文件管理工具》这篇文章主要为大家详细介绍了如何使用Go语言开发一款命令行文件管理工具,支持批量重命名,删除,创建,移动文件,需要的小伙伴可以了解下... 目录一、工具功能一览二、核心代码解析1. 主程序结构2. 批量重命名3. 批量删除4. 创建文件/目录5. 批量移动三、如何安

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本