第二章 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. kafka spark steam 写入elasticsearch的部分问题

    应用版本 elasticsearch 5.5 spark 2.2.0 hadoop 2.7 依赖包版本 docker cp /Users/cclient/.ivy2/cache/org.elastic ...

  2. whatsoever|

    ADV (用于名词词组后,强调否定陈述)丝毫,任何,无论什么You use whatsoever after a noun group in order to emphasize a negative ...

  3. python3下应用pymysql(第二卷)

    上一卷讲述的是单条插入数据,现在要多条插入数据: 随意定义了一批数据 去数据库查询一下: 下面试一下查询语句: 获取游标里的数据,结果如下: 下面更改下返回数据类型,如果想用字典类型: 结果如下: 在 ...

  4. ajax 接受后台中文数据出现"?"(疑问号)解决方案

    把后端要返回的数据转成一个JSONObject类型返回,返回String 类型数据使用JSONObject来封装然后返回,绝对不会出现???了, 要是返回的是一个实体类的话,需要在前端或者后端做转换成 ...

  5. C#获取代码执行时间(精确到毫秒)

    private void Time(int i) { Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(i); sw.Stop(); C ...

  6. 最长递增子序列-dp问题

    Longest Increasing Subsequence The longest increasing subsequence problem is to find a subsequence o ...

  7. CentOS7下MySQL5.7的安装-RPM方式

    Installing MySQL on Linux Using RPM Packages 下载安装包 mysql下载地址:https://dev.mysql.com/downloads/mysql/ ...

  8. vm文件的优点

    vm文件的优点 相较于内容写在jsp 文件: 1.在网页上上浏览和下载的内容用的是同一套,也就是说只需要维护一套内容,页面上看到的和下载得到的是一致的. 2.版本控制较为简便, 实现了页面内容和jsp ...

  9. 吴裕雄--天生自然KITTEN编程:救救小兔子

  10. loadrunner没有告诉你的

    1.        LoadRunner之-Block l  如何在一个脚本中实现不同事务不同次数的循环呢? l  案例:假如你想在一个脚本中,实现登录执行1次,查询执行2次,插入执行3次,怎么办?录 ...