c语言-数据类型(下)

 

目录

 

4.实型变量

5.字符常量

直接常量:

转义字符:

6.字符变量

7.字符串常量

五、输出格式总结

整型:

浮点型:

字符及字符串:

指针(地址):

六、typedef

七、sizeof一个问题


 

4.实型变量

单精度float型:4字节,7位有效数字

双精度double型:8字节,16位有效数字

5.字符常量

直接常量:

                  用''单引号括起来('a','b'等)

                  因为计算机识别二进制,所以字符在计算机中以ASC II的形式存

                  ‘a’表示取a的ASCII值

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(int argc, char* argv[]) {char ch = 'a';//字符变量ch存储的是‘a’的ASCII值printf("ch = %c\n",ch);//%c输出的是字符printf("ch = %d\n",ch);//%d输出的是字符的ASCII值ch = 97;//‘a’与97是完全等价的printf("ch = %c\n", ch);printf("ch = %d\n", ch);ch = ch + 1;printf("ch = %c\n", ch);printf("ch = %d\n", ch);
}

运行结果:

3900440dbd40464ea47a62c4e864b561.png

                    字符获取键盘输入:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(int argc, char* argv[]) {char ch;printf("请输入一个字符:");scanf("%c",&ch);//ch = getchar();//这两个都是只能提取一个字符,结果一样printf("ch = %c\n",ch);printf("ch = %d\n",ch);
}

运行结果:

60ecb3c3ba9c41c2bdffa6a651fa919c.png

案例:键盘输入abc,只取a和c

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(int argc, char* argv[]) {char ch1,ch2;printf("请输入abc:");ch1 = getchar();getchar();//取了字符但是没地方给,丢掉ch2 = getchar();printf("ch1 = %c\n",ch1);printf("ch2 = %c\n", ch2);
}

运行结果:

9ad53e74adf24008b420b256b5659289.png

转义字符:

                    以\形式开头后面跟一个或几个字符

                    \n换行,\t跳格(tab),\\一个反斜杠......

                    %%才能输出一个%

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(int argc, char* argv[]) {printf("##%c##\n",'\\');printf("##%%##\n");char ch = '\0';printf("A:%d\n",'0');//取ASCII值printf("B:%d\n", '\0');printf("C:%d\n", 0);printf("D:%d\n", "0");//字符‘0’的地址
}

使用##来夹住%c以及%%,这样在##中间的值就是输出的内容

char清零严格上就要如上书写:'\0'等价于0

运行结果:

1593e4fdb98940199eae48c8a08b5a36.png

6.字符变量

用char形式定义,分配一个字节的内存空间,以ASCII码的形式存储

字符变量存储的是这个字符的ASCII值

字符常量直接常量的例子中有相关演示

7.字符串常量

1)用双引号括起来的字符序列

2)'a'是字符常量,占1字节,用ASCII码形式存储

“a”是字符串常量,占2字节,以首地址存储

为什么占2个字节,因为每个字符串结尾都会自动加上一个\0结束标志

3)%s输出字符串类型,会从首元素开始输出字符直至遇到\0

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(int argc, char* argv[]) {printf("%s\n","hello");//%s输出字符串类型printf("%d\n",sizeof("hello"));//系统会在字符串末尾自动加一个\0printf("%s\n","hello world");printf("%s\n", "hello\0world");//%s从字符串首元素逐个输出,直至遇到'\0'printf("##%s##\n", "\0hello\0world");
}

运行结果:

e2b3dce63cf94688aa6967327318f8da.png

五、输出格式总结

整型:

    %d  十进制有符号整数      %u  十进制无符号整数

    %x 以十六进制表示的整数  %o  以八进制表示的整数 

    %ld是有符号long型,%lu是无符号longxing

    %hd是有符号short型,%hu是无符号short型

浮点型:

    %f  float型浮点数          %lf double型浮点数     %e  指数形式的浮点数 

字符及字符串:

    %c  单个字符                                     %s  字符串

指针(地址):

    %p指针的值

还可以控制输出的位数和格式

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(int argc, char* argv[]) {printf("##############\n");printf("##%5d##\n",123);//占5个终端位宽,右对齐printf("##%-5d##\n", 123);//占5个终端位宽,左对齐printf("##%05d##\n", 123); //占5个终端位宽,右对齐,不足补0printf("##%-05d##\n", 123); //不能这样写。结果没变化,因为假如结果为1,00加到左边没变化为001,00加到右边,数值就变了是100printf("##%5.2f##\n", 3.14159f);//5表示总位宽为5,.2表示小数位保留两位
}

运行结果:

849c5ac33b8d48b58afa59e7f2c16271.png

六、typedef

1.为已有类型取个别名

2.一定要按照以下步骤进行,不然容易写错

1)用已有类型定义一个变量

2)用别名替换变量名

3)在整个表达式的前方加上typedef

1.

1)int a

2)  int INT32

3)  typedef int INT32

2.

1)  int arr[5]

2)  int ARR[5]

3)  typedef int ARR[5]

七、sizeof一个问题

sizeof测类型,跟变量就是测变量类型,跟常量就是系统认为的这个常量的类型

sizeof('a')是4个字节

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(int argc, char* argv[]) {char ch = 'a';printf("%d\n", sizeof('a'));printf("%d\n", sizeof(char));
}

运行结果:

33fac01c2b9b48299dbd78447b6b05e8.png

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/628139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab并行编程之GPU

Matlab并行编程之GPU Matlab提供GPU上计算支持: 基础数据类型(gpuArray和对应API),支持GPU计算的内置函数和多个工具包,支持PTX内核对象加载,支持MEX函数使用CUDA C/C开发等。对大规模数据处理&#xff0c;复杂计算&#xff0c;利用GPU计算能提供显著的性能加速效果. Matlab同…

Docker之网络配置的使用

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《Docker之网络配置的使用》。&#x1f3af;&…

OpenHarmony——Linux之IR驱动

Linux之IR驱动 背景 在光谱中波长自760nm至400um的电磁波称为红外线&#xff0c;它是一种不可见光。红外遥控成本很低&#xff0c;以前广泛应用在电视&#xff0c;空调等电器的控制上面&#xff0c;现在随着蓝牙遥控器慢慢普及&#xff0c;红外遥控越来越少&#xff0c;但在某…

图像处理:孤立点的检测

图像处理-孤立点的检测 孤立点的检测在图像处理中通常涉及到检测图像中的突变或者边缘&#xff0c;而使用二阶导数是一种常见的方法。一阶导数可以帮助找到图像中的边缘&#xff0c;而二阶导数则有助于检测边缘上的峰值&#xff0c;这些峰值可能对应于孤立点或者特殊的图像结构…

AI大模型预先学习笔记二:prompt提问大模型、langchain使用大模型框架、fine tune微调大模型

文章目录 一、Prompt Engineering&#xff08;怎么去提问大模型&#xff09;1&#xff09;环境准备2&#xff09;交互代码的参数备注3&#xff09;交互代码 二、LangChain&#xff08;一个框架去使用大模型&#xff09;1&#xff09;LangChain核心介绍&#xff1a;I/O模块、数据…

TypeError: (0 , _ahooks.createUpdateEffect) is not a function

版本 "next": "14.0.4", "antd-mobile": "^5.34.0", next中使用antd-mobile可困难了.主要是因为antd-mobile不支持ssr 1.下载antd-mobile包,在next.config.js中加入 transpilePackages: [antd-mobile,], 2.在页面中引入antd-mobi…

蓝桥杯备赛day02 -- 算法训练题 拿金币Java

目录 题目&#xff1a; 问题描述 输入格式 输出格式 解题过程 第一步 定义dp数组 第二步 确定 dp 数组递推公式 第三步 dp数组的初始化 第四步 dp数组的遍历顺序 第五步 举例说明 报错&#xff1a;内存超限 用dp数组去存储位置上的金币 dp数组从二维降为一维 收获&a…

【MCAL】MCU模块详解

目录 前言 正文 1. MCU模块介绍 2. MCU依赖的模块 3. MCU模块提供服务 3.1 时钟的初始化 3.2 MCU模式的配置 3.3 MCU软件复位功能 3.4 RAM的初始化 4.MCU重要数据类型 4.1 Mcu_ResetType 4.2 Mcu_ModeType 5. MCU重要API 5.1 Mcu_Init 5.2 Mcu_InitClock 5.3 M…

信息系统安全——Linux 访问控制机制分析

实验 4 Linux 访问控制机制分析 4.1 实验名称 《Linux 访问控制机制分析》 4.2 实验目的 1 、熟悉 Linux基本访问控制机制使用和原理 2 、熟悉 Linux S 位的作用和使用 3 、熟悉强制访问控制 Selinux 原理及其使用 4.3 实验步骤及内容 1 、Linux 基本访问控制机制 &#xff08…

vue el-table 多选框回填

主要代码: //选中列&#xff0c;所有列&#xff0c;表名toggleSelection(selectRows, totalRows, tablename) {this.$refs.table.clearSelection();if (selectRows.length > 0) {this.$nextTick(() > {selectRows.forEach(item > {totalRows.forEach(item1 > {if (…

C语言天花板——指针(经典题目)

指针我们已经学习的差不多了&#xff0c;今天我来给大家分享几个经典的题目&#xff0c;来让我们相互学习&#x1f3ce;️&#x1f3ce;️&#x1f3ce;️ int main() {int a[4] { 1, 2, 3, 4 };int* ptr1 (int*)(&a 1);int* ptr2 (int*)((int)a 1);printf("%x,%…

连锁品牌如何引流获客?小魔推短视频矩阵助你流量爆棚

近几年因为大环境的影响&#xff0c;大多数实体行业的生意都不太好做&#xff0c;为了帮助更多实体行业提升品牌知名度&#xff0c;带来更多的流量与转化&#xff0c;餐赞小魔推也在不断的更新迭代&#xff0c;同时考虑到了单门店与连锁品牌使用的便捷性。 目前针对连锁品牌方&…

功能权限篇

文章目录 1. 如何设计一套权限系统1.1 目标1.2 权限模型1.2.1 模型一RBAC1.2.2 模型二ABAC 2.如何实现菜单的创建&#xff1f;2.1 表结构2.2 前端实现2.3 后端实现 3. 如何实现角色的创建&#xff1f;4.如何给用户分配权限 —— 将菜单赋予角色&#xff1f;5.如何给用户分配权限…

【目标跟踪】跨相机如何匹配像素

文章目录 前言一、计算思路二、代码三、结果 前言 本本篇博客介绍一种非常简单粗暴的方法&#xff0c;做到跨相机像素匹配。已知各相机内外参&#xff0c;计算共视区域像素投影&#xff08;不需要计算图像特征&#xff09;。废话不多说&#xff0c;直接来&#xff0c;见下图。…

QT -狗狗管理工具

QT -狗狗管理工具 一、演示效果二、UML三、关键代码四、程序链接 一、演示效果 二、UML 三、关键代码 #include <QFrame> #include <QHBoxLayout> #include <QVBoxLayout> #include <QLabel> #include <QSizePolicy> #include <QDialog> …

算法第十八天-打家劫舍Ⅱ

打家劫舍Ⅱ 题目要求 解题思路 [打家劫舍Ⅱ]是说两个相邻的房间不能同时偷&#xff0c;并且首尾两个房间是相邻的&#xff08;不能同时偷首尾房间&#xff09;明显是基于[打家劫舍Ⅰ]做的升级。[打家劫舍Ⅰ]也是说两个相邻的房间不能同时偷&#xff0c;但是首尾房间不是相邻的…

Nas群晖中安装Cpolar实现内网穿透

1、到Cpolar官网中安装对应的套间 cpolar官网&#xff1a; cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站 2、到群晖nas中安装套间 选择好套间无脑下一步 已完成

时间序列数据的季节性检测

时间序列分析是统计学和数据科学的一个基本研究领域&#xff0c;它为理解和预测序列数据中的模式提供了一个强大的框架。特别是时间序列数据&#xff0c;它捕获连续时间间隔内的信息&#xff0c;使分析师能够揭示趋势&#xff0c;季节性模式和其他时间依赖性。在时间序列分析的…

GPT应用开发:运行你的第一个聊天程序

本系列文章介绍基于OpenAI GPT API开发应用的方法&#xff0c;适合从零开始&#xff0c;也适合查缺补漏。 本文首先介绍基于聊天API编程的方法。 环境搭建 很多机器学习框架和类库都是使用Python编写的&#xff0c;OpenAI提供的很多例子也是Python编写的&#xff0c;所以为了…

PTA(浙大版《C语言程序设计(第3版)》题目集

PTA(浙大版《C语言程序设计&#xff08;第3版&#xff09;》题目集 学习C语言程序设计的PTA题目 目录 PTA(浙大版《C语言程序设计&#xff08;第3版&#xff09;》题目集PTA(浙大版《C语言程序设计&#xff08;第3版&#xff09;》题目集) 习题2-1 求整数均值 (10 分)输入格式:…