c语言-数据类型(上)

news2024/11/14 11:03:55

目录

一、数据类型

二、常量与变量

常量:

变量:

三、进制(八,十,十六)

十进制:

八进制:

十六进制:

四、基本类型

1.整型常量:

2.整型变量:

1)读写操作:

2)输出形式:

3.实型常量


一、数据类型

基本类型整型:int,short,long
字符型:char
实型(浮点型):float(单精度),double(双精度)
构造类型数组类型

数据

类型

结构类型:struct
联合类型:union
枚举类型:enum
指针类型char*,int*,int**

构造类型是由基本类型封装打包而成

二、常量与变量

常量:

1.运行过程中值不能被改变的量(但是不能反过来说,值不能改变的量是常量)

2.整型,字符型,字符串

3.一般出现在表达式或赋值语句的右边(赋值语句是右边的值赋值给左边)

a=100+b;
c=12.5;

变量:

1.系统根据变量类型分配内存空间,其值可以被改变

2.变量名称表示空间的内容(可以通过操作变量名操作空间)

3.命名规则:由字母,数字,下划线组成,不能以数字开头

4.c中全有小写字母组成,两个单词中间用_隔开(如num_value)

   c++中第一个单词小写第二个单词首字母大写(如numValue)

三、进制(八,十,十六)

整型常量用进制区分:

十进制:

0~9组成,输出可以使用(%d,%u,%ld,%lu)

八进制:

0~7组成,输出可以用%o    ->   可以使用%#o

十六进制:

0~9,a~f组成,输出可以使用%x  ->   可以使用%#x

不同进制只是数据的表现形式,不会修改数据本身

使用%#o和%#x的目的是可以加上具有该进制特点的前缀便于区分

#include<stdio.h>
int main(int argc,char *argv[]){
 int num = 10;
 printf("十进制:num = %d\n",num);
 printf("八进制:num = %#o\n",num);
 printf("十六进制:num = %#x\n",num);
while(1);
return 0;
}

运行结果:

四、基本类型

c语言不支持二进制输入输出

1.整型常量:

按照三中进制划分可以有十进制,八进制,十六进制三种输出形式

2.整型变量:

分为有符号整型和无符号整型,其中整型又可以分为短整型,整型和长整型

1)读写操作:

注意:局部变量不初始化,内容随机,尽量初始化为0

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(int argc, char* argv[]) {
    //int num;//局部变量若不初始化,内容随机,这样后面的printf输出的就是随机值了
	int data = 0;
	int num = 0;
	printf("num = %d\n",num);//读,取值
	
	num = 100;//写,赋值
	printf("num = %d\n",num);

	data = num;//对num是读,对data是写
	printf("data = %d\n",data);

	//获取键盘输入
	printf("请输入一个int型数据:");
	scanf("%d",&data);//&data表示data对应空间的起始地址
	printf("data = %d\n",data);

}

运行结果:

2)输出形式:

%d是有符号整型,%u是无符号整型

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

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

适用于输出,也适用于输入

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(int argc, char* argv[]) {
	int num1 = 0;
	printf("num1 = %d\n",num1);//%d是有符号整int型输出

	unsigned int num2 = 0;
	printf("num2 = %u\n",num2);//%u是无符号int型输出

	long num3 = 0;
	printf("num3 = %ld\n",num3);//%ld是有符号long型数据输出

	unsigned long num4 = 0;
	printf("num4 = =%lu\n",num4);//%lu是无符号long型数据输出

	short num5 = 0;
	printf("num5 = %hd\n",num5);//%hd是有符号short型数据输出

	unsigned short num6 = 0;
	printf("num6 = %hu\n",num6);//%hu是无符号short型数据的输出
}

3.实型常量

1)也被称为实数或者浮点数

2)有两种形式:十进制形式:数字加小数点

                        指数形式:123e3代表123*10的三次方

3)不以f结尾的默认是double型,以f结尾的是float型

4)%f是float型,%lf是double型

5)赋值语句等号两边类型尽量保持一致

如float a = 3.14就不太好,因为不加f是double型,等式左边是float右边是double

6)sizeof加变量不加(),加类型必须加(),但是为了统一,一般都加上

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(int argc, char* argv[]) {
	//赋值语句,=两边的类型尽量保持一致
	float a = 3.14f;//有f结尾的是float型
	double b = 3.14;//无f结尾的是double型

	printf("sizeof(3.14) = %d\n",sizeof(3.14));//double型,8
	printf("sizeof(3.14f) = %d\n",sizeof(3.14f));//float型,4

	printf("sizeof(b) = %d\n", sizeof(b));//同上
	printf("sizeof(a) = %d\n", sizeof(a));//同上

	printf("a = %f\n",a);//%f输出float型数据
	printf("b = %lf\n",b);//%lf输出double型数据

	scanf("%f",&a);
	scanf("%lf",&b);

}

运行结果:

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

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

相关文章

Unet系列网络解析

Unet UNet最早发表在2015的MICCAI上&#xff0c;到2020年中旬的引用量已经超过了9700多次&#xff0c;估计现在都过万了&#xff0c;从这方面看足以见得其影响力。当然&#xff0c;UNet这个基本的网络结构有太多的改进型&#xff0c;应用范围已经远远超出了医学图像的范畴。我…

vector容器解决杨辉三角

一、题目描述 118. 杨辉三角 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRo…

Arduino开发实例-手指心率传感器模块

手指心率传感器模块 文章目录 手指心率传感器模块1、手指心率传感器介绍2、硬件准备及接线3、代码实现1、手指心率传感器介绍 本次使用的心率传感器模块是为教育和娱乐目的而设计的,通过手指检测心血管脉搏波。 它使用 PPG (HRM-2511E) 探头进行数据传输。 该传感器使用红外线…

深度学习代码学习(一文真正看懂卷积层的代码定义)

一维卷积: 将n行3列升维到n行6列。&#xff08;原因&#xff1a;卷积核为6个&#xff09; *表示点乘 Linear线性层&#xff1a; &#xff08;通过矩阵计算改变输入输出特征向量的维度&#xff09; Pytorch nn.Linear的基本用法与原理详解-CSDN博客 pytorch初学笔记&#…

玩转硬件之Micro:bit的玩法(六)——扫地机器人

众所周知&#xff0c;扫地机器人&#xff0c;又称自动打扫机、智能吸尘、机器人吸尘器等&#xff0c;是智能家电的一种&#xff0c;能凭借人工智能&#xff0c;自动在房间内完成地板清理工作。一般采用刷扫和真空方式&#xff0c;将地面杂物先吸纳进入自身的垃圾收纳盒&#xf…

【DDR】基于Verilog的DDR控制器的简单实现(三)——读操作

上一节 【DDR】基于Verilog的DDR控制器的简单实现&#xff08;二&#xff09;——写操作 本文继续以美光(Micron&#xff09;公司生产的DDR3芯片MT41J512M8RH-093&#xff08;芯片手册&#xff09;为例&#xff0c;说明DDR芯片的读操作过程。下图为读操作指令格式&#xff08;…

Linux驱动(五)设备树

1、前言 设备树是一种描述硬件平台和设备的数据结构&#xff0c;它以一种结构化的方式描述了系统中的各种设备和资源&#xff0c;包括处理器、内存、外设和总线等。设备树通常用于嵌入式系统和嵌入式 Linux 系统中&#xff0c;它可以帮助操作系统内核在启动时自动识别硬件&…

记录一次git merge后发现有些文件不对的问题,排查过程

分支进行merge&#xff08;A merge到B&#xff09;之后&#xff0c;发现string.xml中有些字段的值没有merge过来&#xff0c;一开始还以为自己是自己merge错误&#xff0c;检查了一遍自己的merge操作没有问题。 那为啥没有merge过来呢&#xff1f;有一种可能是&#xff0c;merg…

软件测试|Python数据可视化神器——pyecharts教程(十三)

使用pyecharts绘制水球图 水球图是一种有趣而视觉吸引力的数据可视化方式&#xff0c;它可以用来展示进度或百分比等信息。这方面水球图和仪表图是类似的&#xff0c;但是水球图比仪表图更为炫酷一些。像一些资源占用率等指标都是使用水球图来展示的&#xff0c;作为绘图神器&…

LaTeX 章节的使用

目录 1、介绍 2、章节的等级 3、取消编号章节 4、章节引用 1、介绍 命令\section{}标志着一个新章的开始&#xff0c;大括号内的文字为章的标题。章的编号是自动生成的&#xff0c;你也可以使用没有编号的章。 \documentclass[]{article}\begin{document}\section{Introd…

在服务器上使用Docker运行SRS Stack,推拉直播流、多平台转播、本地录制、虚拟直播、直播转码、AI字幕、其他

SRS Stack | SRS (ossrs.net) Docker​ 推荐使用Docker运行SRS Stack&#xff1a; docker run --restart always -d -it --name srs-stack -v $HOME/data:/data \-p 2022:2022 -p 2443:2443 -p 1935:1935 -p 8000:8000/udp -p 10080:10080/udp \registry.cn-hangzhou.aliyun…

设备之AP555【之一】

1、Audio Precision官网 Audio Precision 是声学及音频测试中公认的标准。AP提供了高性能声学和音频分析仪&#xff0c;配件和应用程序&#xff0c;帮助全球工程师设计&#xff0c;验证和制造消费电子、专业和工业的声学和音频产品。 APX555B 是具有三十年经验的测试设备&…

第十二章 Java内存模型与线程(二)

文章目录 12.4 Java与线程12.4.1 线程的实现12.4.2 Java线程调度12.4.3 状态转换 12.4 Java与线程 12.4.1 线程的实现 实现线程主要有三种方式&#xff1a;使用内核线程实现&#xff08;1&#xff1a; 1 实现&#xff09;&#xff0c;使用用户线程实现&#xff08;1&#xff…

内网穿透[让你在家里也能榨干学校的服务器]Yep!

内网穿透 问题&#xff1a;什么是内网穿透&#xff0c;内网穿透的作用是什么&#xff1f; 前提&#xff01;&#xff01;&#xff01;&#xff01;你得拥有超级管理员的权限&#xff0c;比如root&#xff0c;不然后面的一切免提&#xff01; 应用场景如下&#xff1a;比如你…

MOS管驱动电流计算以及分立器件驱动电路

自记&#xff1a; 1.先根据mos数据手册查找参数&#xff0c;计算电流&#xff1b; 2.分立器件驱动电路图&#xff1b; 3.分立器件选择 仔细学&#xff0c;能看懂&#xff01; 1.计算电流&#xff1a; 2.分立器件驱动电流&#xff1a;两种&#xff0c;第一种反向&#xff0c…

HCIP-3

重发布、重分布、重分发&#xff1a; ASBR同时工作于不同的路由协议中&#xff0c;然后通过各种的方式学习的条目&#xff0c;再进行共享&#xff1b; 必须存在ASBR----自治系统边界路由器--协议边界路由器需要考虑种子度量 规则&#xff1a; 将A协议发布到B协议&#xff0c…

TS快速上手

1.类型声明 let a: string //变量a只能存储字符串 let b: number //变量a只能存储数值 let c: boolean //变量a只能存储布尔值 a hello a 100 //警告&#xff1a;不能将类型“number”分配给类型“string” b 666 b 你好//警告&#xff1a;不能将类型“string”分配给类型…

重学Java 6 流程控制语句

我与我&#xff0c;至死不渝 ——24.1.15 模块重点&#xff1a; ①会使用Scanner和Random ②会使用switch以及知道case的穿透性 ③会使用if ④会使用for循环&#xff0c;while循环&#xff0c;嵌套循环 一、键盘录入_Scanner 1.概述&#xff1a;是Java定义好的一个类 2.作用&am…

把握现货黄金的基本操作技巧

在投资市场这个大舞台上&#xff0c;有各种各样的投资产品供投资者选择&#xff0c;其中黄金作为一种重要的投资资产&#xff0c;一直受到广大投资者的青睐。然而&#xff0c;黄金交易并非易事&#xff0c;需要掌握一定的操作技巧。那么&#xff0c;如何才能把握住现货黄金的操…

基础面试题整理4

1.mybatis的#{}和${}区别 #{}是预编译处理&#xff0c;${}是字符串替换#{}可以防止SQL注入&#xff0c;提高安全性 2.mybatis隔离级别 读未提交 READ UNCOMMITED&#xff1a;读到了其他事务中未提交的数据&#xff0c;造成"脏读","不可重复读","幻读&…