第二章 C数据类型

八进制整数由数字0开头,后跟0~7的数字序列组成。

十六进制整数由数字0加字母x(或X)开头,后跟0~9,a~f(或A~F)的数字序列组成。

整型常量:

  • 默认的int型定义为有符号整数,因此对int型无需使用signed
  • 无符号整型常量:U
  • 长整型常量:L
  • 无符号长整型常量:LU

十进制小数形式

指数形式:3.45e-6=0.00000345

实型常量:

  • 单精度:F
  • 双精度(实型常量默认)
  • 长双精度:L

变量在使用前必须先定义,需要声明变量的类型和变量名。

//L2-1a-1

main()//以main()作为开头指定了C程序执行的起点
//一个C程序必须有且只能有一个用main()作为名称的函数,称为主函数
{
int a;
float b;
char c;
a = 1;
b = 2.5;
c = 'A';
}
  • 变量名(标识符)是大小写敏感的
  • 所有变量必须在第一条可执行语句之前定义(这是C89的要求)
  • C99的新特性允许语句和声明按任意顺序排列,只要每个标识符都遵循先声明后使用的原则就行
  • 空格是为了增强程序的可读性
  • 定义变量的同时可以对变量进行初始化,如int a=1;

//L2-1a-2

main()
{
int a = 1; /* 定义整型变量a并对其初始化 */
float b = 2.5; /* 定义实型变量b并对其初始化 */
char c = 'A'; /* 定义字符型变量c并对其初始化 */
}

可同时定义多个相同的变量,如int a,b,c;

注释不可以嵌套!

//L2-1b

#include  <stdio.h>//这是C的编译预处理命令
//这一行将会出现在每一个需要向屏幕输出数据或者从键盘输入数据的程序中
main()
{
int a = 1;
float b = 2.5;
char c = 'A';
//\n表示输出一个换行
printf("a = %d\n", a); /* 按整型格式输出变量a的值 */
printf("b = %f\n", b); /* 按实型格式输出变量b的值,除非特别指定,否则隐含输出6位小数 */
printf("c = %c\n", c); /* 按字符型格式输出变量c的值 */
printf("End of program\n"); /* 输出一行字符串 */
}
//运行结果
a=1
b=2.500000
c=A
End of program

变量或数据类型所占空间的大小:

  • 1B(字节)=8bit
  • sizeof()是C语言的关键字,不是函数名
  • sizeof()是C语言提供的专门用于计算指定数据类型字节数的运算符

//L2-2

#include  <stdio.h>
main()
{
printf("Data type Number of bytes\n");
printf("------------ ---------------------\n");
printf("char %d\n", sizeof(char));
printf("int %d\n", sizeof(int));
printf("short int %d\n", sizeof(short));
printf("long int %d\n", sizeof(long));
printf("float %d\n", sizeof(float));
printf("double %d\n", sizeof(double));
}
//运行结果
Data type Number of bytes
------------ ---------------------
char 1
int 4
short int 2
long int 4
float 4
double 8

赋值表达式用于给变量赋值

  • 有方向性
  • 等号左侧是能表示一个特定存储单元的变量名

运算的优先级

  • 综合性:左结合、右结合
  • C语言中需要两个操作数的算数运算符是左结合的
  • 赋值运算符是右结合的

有符号整数和无符号整数

  • 对有相同字数的整型数而言,有符号整数能表示的最大整数的绝对值只有无符号整数的一半
  • 负数在计算机中都是以二进制补码的形式来表示和存储的
  • 正数的反码、补码与其原码都是相同的
  • 采用补码可以将减法运算也转换为加法运算来处理
  • 采用补码可以以统一的形式来表示+0和-0

实数的指数部分称为阶码,小数部分称为尾数

  • 阶码所占的位数决定实数的表数范围,尾数所占的位数决定实数的精度
  • 尾数的符号决定实数的正负

浮点数并非真正意义上的实数,只是其在某种范围内的近似

//L2-3

#include <stdio.h>
main()
{
float a;
double b;
a = 123456.789e4;
b = 123456.789e4;
printf("%f\n%f\n",a,b);
}
//运行结果
1234567936.000000
1234567890.000000

C语言程序设计(二) C数据类型的更多相关文章

  1. OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章)

    OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章) 4.5精度和精度修饰符 4.5.1范围和精度 用于存储和展示浮点数.整数变量的范围和精度依赖于数值的源(varying,unifo ...

  2. Python语言程序设计之二--用turtle库画围棋棋盘和正、余弦函数图形

    这篇笔记依然是在做<Python语言程序设计>第5章循环的习题.其中有两类问题需要记录下来. 第一是如何画围棋棋盘.围棋棋盘共有19纵19横.其中,位于(0,0)的星位叫天元,其余8个星位 ...

  3. C语言程序设计第二次作业--顺序结构

    C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include <stido ...

  4. 全国计算机等级考试二级Python语言程序设计考试大纲

    全国计算机等级考试二级Python语言程序设计考试大纲(2018年版) 基本要求 掌握Python语言的基本语法规则. 掌握不少于2个基本的Python标准库. 掌握不少于2个Python第三方库,掌 ...

  5. C语言程序设计II—第二周教学

    第二周教学总结(4/3-10/3) 教学内容 根据邹欣老师的建议,临时修改教学计划,将最后一周的内容:第十二章 文件,提前讲授. 课前准备 在博客园发布作业:2019春第二周作业 作业根据本周讲授的& ...

  6. 《C语言程序设计》课程教学目录

    <C语言程序设计>课程教学目录 不要去精确定义单个论题,应将一整套问题组织成体系.--黎曼(1826-1866)德国著名数学家 教学过程 2018年秋季学期 C语言程序设计I-第一周教学 ...

  7. 2019年春季学期《C语言程序设计II》课程总结

    2019年春季学期<C语言程序设计II>课程总结 1.课程情况 教学内容 课堂小结 作业安排 优秀作业 备注 1.开学谈心 2.测验数据类型.运算符与表达式的自学情况,并讲解测验题目3.第 ...

  8. 《C语言程序设计教程》学习笔记

    <C语言程序设计教程>--朱鸣华.刘旭麟等 第一章 C语言概述 1.C语言的特点: 1)兼具高级.低级语言的双重能力(C语言允许直接访问物理地址,能够进行位操作,能实现汇编语言的大部分功能 ...

  9. 【MOOC课程学习记录】程序设计与算法(一)C语言程序设计

    课程结课了,把做的习题都记录一下,告诉自己多少学了点东西,也能给自己一点鼓励. ps:题目都在cxsjsxmooc.openjudge.cn上能看到,参考答案在差不多结课的时候也会在mooc上放出来. ...

  10. C语言程序设计实验报告(第一次实验)

    C程序设计实验报告 实验项目:C语言程序设计教程实验1.3.2:1.3.3:1.3.4:2.3.1:2.3.2 姓名:赖瑾 实验地点:家 实验时间:2020.2.25 目录 C程序设计实验报告 一.实 ...

随机推荐

  1. HttpClient简介与案例分析

    HttpClient简介 HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 jav ...

  2. javaee验证码如何使用

    首先需要导入jar包 ValidateCode.jar 110   25  为验证码框的大小  4为验证码数目 9为干扰线条数 Servlet代码如下 运行截图如下

  3. 吴裕雄--天生自然操作系统操作笔记:window10显示隐藏文件夹

    基于安全考虑,操作系统会隐藏一些文件和文件夹,防止误删除操作.但有可能是个别人为了隐藏一些私密数据,也同样采取隐藏的方式.

  4. Service层在MVC框架中的意义和职责

    https://blog.csdn.net/u012562943/article/details/53462157 mvc框架由model,view,controller组成,执行流程一般是:在con ...

  5. Java WebSocket实现简易聊天室

    一.Socket简介 Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求.Socket的英文原义是“孔”或“插座”,作为UNI ...

  6. js组合式继承

    组合式继承是比较经典的继承,但是也有比较严重的缺点就是连两次调用了父类的构造函数. <!DOCTYPE html> <html lang="en"> < ...

  7. PyCharm 介绍、安装、入门使用

    一.Pycharm介绍 前面几年的时间,我一直用的eclipse,后面开始听同事说用IntelliJ IDEA了,而且说是目前业界最好用的java开发工具,IDE(集成开发环境),没有之一.PyCha ...

  8. K8S实战-构建Django项目-03-使用共享存储

    上篇博文,发布之后,正好跟着双十一,不知道大家剁手了没~~.好啦,言归正传先声明一下,每周1,3,5更新教程,大家如果想要了解更多的教程可以重温一下之前的教程或者,关注崔格拉斯 公众号,大家想要源码的 ...

  9. 基于 HTML5 Canvas 的 3D 热力云图效果

    前言 数据蕴藏价值,但数据的价值需要用 IT 技术去发现.探索,可视化可以帮助人更好的去分析数据,信息的质量很大程度上依赖于其呈现方式.在数据分析上,热力图无疑是一种很好的方式.在很多行业中都有着广泛 ...

  10. 可视化工作流程设计开发OA系统,一两个程序员就搞定!

    随着信息化的发展,越来越多的公司老板要求实现企业审批流程化.一个公司在初期,人员少,流程简单,员工也会经常不按工作流程来走,甚至有些跨部门的工作因为关系原因,没有走工作流程就实施,导致后期出现问题或者 ...