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

相关文章

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

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

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ