CDay03

字符类型

编码

char类型采用ASCII编码,占1个字节,只用了7位(最高位是0),能表示128个字符。

CDay03
需要记忆的:


  • 空字符 '\0' = 0
  • ' ' = 32
  • '0' = 48
  • 'A' = 65
  • 'a' = 97

转义序列

字符转义序列

CDay03

数字转义序列

  • 八进制:以 \ 开头,后面最多接三个八进制数
  • 十六进制:以 \x 开头,后面接十六进制数

字符处理函数

CDay03

读写字符类型

  1. scanf/printf,配合%c来读写,%c匹配一个字符

  2. getchar()/putchar()
    int getchar(void) 函数从 stdin 上读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。您可以在循环内使用这个方法,以便从屏幕上读取多个字符。
    int putchar(int c) 函数把字符输出到 stdout,并返回相同的字符。这个函数在同一个时间内只会输出一个单一的字符。您可以在循环内使用这个方法,以便在屏幕上输出多个字符。

getchar和putchar的效率远高于printf和scanf,如果只是读写字符数据,建议使用getchar和putchar。

布尔类型

C99引入布尔类型,定义在<stdbool.h>中

布尔值转换为整数

  • false --> 0
  • true --> 1

整数转换为布尔值

  • 0 --> false
  • 非0 --> true

类型转换

1、为什么要进行类型转换?
答:计算机硬件做计算时,要求操作数有相同的位数(相同类型)
2、什么时候会发生类型转换?
答:给定的类型和需要的类型不一致时,就会发生类型转换
3、如何进行类型转换?
答:隐式类型转换、显式类型转换

隐式类型转换

CDay03

CDay03
有符号数与无符号数进行运算时,有符号数会隐式转换为无符号数,故不要将有符号数和无符号数一起参与运算!

显式类型转换

格式:(目标类型) 表达式;

示例:

// 1.计算浮点数的小数部分
double d = 3.14159;
double fraction = d - (int)d;

// 2.提高代码可读性
float f = 3.14f;
//...
int i = (int)f;    //注意这里发生了类型转换,可能会出现问题

// 3.对类型转换进行更精确的控制
int dividend = 4, divisor = 3;
double quotient = 0;

quotient = (double)dividend/divisor;

// 4.可以避免溢出
long long a = 24 * 60 *60 * 1000;
long long b = (long long)24 * 60 *60 * 1000 * 1000 * 1000;

printf("b/a = %lld\n", b / a);

CDay03

sizeof运算符

作用:计算某一类型数据所占的字节数
格式:sizeof(类型)

注意:sizeof是在编译阶段进行运算的

typedef

作用:给类型起别名
格式:typedef 类型 别名;

为什么要给类型起别名?
答:提高代码可读性、提高代码可移植性

注意:

#define int BOOL  //预处理后就没有别名了,编译器无法给出精确的报错信息
typedef int BOOL;

总结

CDay03

原文链接:https://www.cnblogs.com/MyXjil/p/17084014.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CDay03 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • 详解如何使用openssl创建自签名证书

    下面我将详细讲解如何使用openssl创建自签名证书。 1. 安装openssl 首先需要确保本地已经安装并配置了openssl,可以使用以下命令检查是否已经安装: openssl version 如果已经安装,则会返回openssl版本的信息。 如果没有安装,则需要先安装openssl,具体方法可以根据不同操作系统进行安装。 2. 生成自签名私钥 使用以下…

    C 2023年5月23日
    00
  • C语言超详细i讲解双向链表

    C语言超详细讲解双向链表 什么是双向链表 双向链表是一个动态数据结构,它由一系列的节点构成,每个节点分为三部分:数据域、指向前驱节点的指针和指向后继节点的指针。双向链表支持在任意位置插入或删除节点,与数组相比,它具有更好的灵活性和效率。 如何实现双向链表 定义节点 typedef struct DNode { int data; struct DNode* …

    C 2023年5月22日
    00
  • Vue渲染失败的几种原因及解决方案

    下面是“Vue渲染失败的几种原因及解决方案”的完整攻略。 1. 原因 1.1 HTML标签错误 在使用Vue渲染模板时,如果HTML标签结构错误,Vue可能会无法解析。常见的原因是HTML标签未闭合或嵌套顺序不正确。 1.2 数据类型不匹配 当Vue在渲染模板时,如果数据类型与模板中的期望不匹配,Vue也可能会渲染失败。例如,模板中期望传入一个字符串,但实际…

    C 2023年5月23日
    00
  • 解决从Map、JSONObject取不存在键值对时的异常情况

    为了解决从Map、JSONObject取不存在键值对时的异常情况,我们可以使用Java中的异常处理机制。我们可以在代码中使用try-catch语句来捕获这些异常。在try语句块中,我们可以尝试获取键值对,如果获取到了键值对,则直接使用。如果获取不到,则会抛出异常。在catch语句块中,我们可以处理这些异常,从而避免程序崩溃。 以下是使用Java异常处理机制来…

    C 2023年5月22日
    00
  • C++解析Json的方法详解【jsoncpp】

    C++解析Json的方法详解【jsoncpp】 什么是Json? Json是一种轻量级的数据交换格式。它基于JavaScript语法,但是与之不同的是Json可以被语言独立使用,Json格式化并不是javascript专属的。Json格式化简单,轻量,适合网络传输。 为什么需要解析Json? 在网络传输中,常常需要将数据进行序列化传输,Json格式是一种非常…

    C 2023年5月23日
    00
  • 从汇编看c++中默认构造函数的使用分析

    请看以下完整攻略: 从汇编看C++中默认构造函数的使用分析 什么是汇编? 首先,我们需要了解什么是汇编。汇编语言是一种低级别的程序设计语言,它使用助记符(mnemonic)来代替二进制码的操作码。汇编语言是一种与硬件紧密相关的语言,它在一定程度上可以直接操作计算机硬件。 C++中的默认构造函数 在C++中,如果不为类定义构造函数,则会自动生成一个默认构造函数…

    C 2023年5月22日
    00
  • C语言解数独程序的源码

    让我们来详细讲解一下“C语言解数独程序的源码”的完整攻略。 什么是数独? 在介绍程序之前,我们先来了解一下数独。 数独是一种智力游戏,由9×9的方格组成,分成9个3×3的小方格,在已知数的基础上填上未知的数字,使得每一行、每一列和每一个小方格内的数字均为1~9,且不重复。数独不但能训练大脑的逻辑、思维能力,还能减轻压力、增加乐趣。 源码分析 下面,我们来分析…

    C 2023年5月23日
    00
  • Objective-C学习之ARC的实现方法

    Objective-C学习之ARC的实现方法 什么是ARC ARC (Automatic Reference Counting)自动引用计数是Apple公司在2011年WWDC发表的一项新技术。在ARC下,开发者不再需要手动管理Objective-C对象的内存,用过的对象会自动通过引用计数释放,减轻了代码的负担,并且更容易保持代码的正确性。 ARC的实现方法…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部