C语言基础语法——数据类型

news2024/11/26 14:54:35

数据类型介绍

  • 数据类型:数据所属的类型
    -

  • 数据类型的作用:编译器预算数据分配的内存空间大小
    在这里插入图片描述

变量

变量的语法

  • 在计算机程序中,变量是用来存储数据的一个内存区域,并用一个名字来表示这个区域。
    在这里插入图片描述

  • 在程序运行过程中,其值可以改变

  • 变量在使用前必须先定义,定义变量前必须有相应的数据类型

  • 语法说明
    在这里插入图片描述
    示例代码:

#include <stdio.h>

int main() {
    // 1. 定义1个int变量age同时赋值为18(这叫初始化),然后打印内容
    int age = 18;
    printf("%d\n", age);
    // 2. 修改age的内容为20,然后打印内容
    age = 20;
    printf("%d\n", age);
    // 3. 定义2个int变量,然后在分别赋值,然后再打印内容
    int a, b;
    a = 123;
    b = 256;
    printf("%d\n", a);
    printf("%d\n", b);
    // 4. 定义1个float类型变量height同时赋值,然后打印内容
    float height = 1.77;
    printf("%f\n", height);

    return 0;
}

标识符命名

  • 标识符是用户编程时使用的名字,用于给变量、函数、结构体等命名 。

命令规则

  • 规则说明:

    • 由数字, 字母, 下划线_组成
    • 不能使用数字开头
    • 不能使用关键字
    • 严格区分大小写
  • 关键字:已经被占用的名字
    在这里插入图片描述

命令规范

好的命名习惯要做到见名知意

  • 大驼峰
    • 每个单词首字母大写, 例如: MyFirstName
  • 小驼峰
    • 第二个单词开始首字母大写, 例如: myFirstName
  • 下划线命名
    • 每个单词之间使用下划线连接, 例如: my_first_name

char类型

  • 每个字符变量都会占用 1 个字节。
  • 在给字符型变量赋值时,需要用一对英文半角格式的单引号(’ ')把字符括起来。
  • 字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的ASCII码放到变量的存储单元中。
  • char的本质就是一个1字节大小的整型。
ASCII值控制字符ASCII值字符ASCII值字符ASCII值字符
0NUT32(space)64@96
1SOH33!65A97a
2STX34"66B98b
3ETX35#67C99c
4EOT36$68D100d
5ENQ37%69E101e
6ACK38&70F102f
7BEL39,71G103g
8BS40(72H104h
9HT41)73I105i
10LF42*74J106j
11VT43+75K107k
12FF44,76L108l
13CR45-77M109m
14SO46.78N110n
15SI47/79O111o
16DLE48080P112p
17DCI49181Q113q
18DC250282R114r
19DC351383S115s
20DC452484T116t
21NAK53585U117u
22SYN54686V118v
23TB55787W119w
24CAN56888X120x
25EM57989Y121y
26SUB58:90Z122z
27ESC59;91[123{
28FS60<92\124|
29GS61=93]125}
30RS62>94^126`
31US63?95_127DEL

示例代码:

#include <stdio.h>

int main() {
    // 定义一个char类型变量,同时赋值为97,分别用%d,%c打印结果
    char ch = 97;
    printf("%d\n", ch);
    printf("%c\n", ch);
    // 定义一个char类型变量,同时赋值为'a',分别用%d,%c打印结果
    char ch2 = 'a';
    printf("%d\n", ch2);
    printf("%c\n", ch2);

    return 0;
}

布尔类型

  • 早期C语言没有布尔类型数据,以0代表逻辑假,非0代表逻辑真
  • C99标准定义了新的关键字_Bool,提供了布尔类型,或者也可以使用stdbool.h中的bool
    示例代码:
#include <stdio.h>
#include <stdbool.h>

int main() {
    // 定义一个bool类型变量,同时赋值为true,然后打印变量的值
    bool flag = true;
    printf("%d\n", flag);

    // 修改上一步变量的值为true,然后打印变量的值
    flag = false;
    printf("%d\n", flag);

    return 0;
}

数据类型长度(大小)

  • 大小单位说明
术语含义
bit一个二进制代表一位,只能表示0或1,数据传输单位
Byte8个二进制位,数据存储单位
WORD2个字节,16位
DWORD两个WORD,4个字节,32位
1b1bit,1位
1B1Byte, 1字节, 8位
1k, 1K1024
1M1024k, 1024×1024
1G1024M
1T1024G
1Kb1024bit, 1024位
1KB1024Byte,1024字节
1Mb1024Kb = 1024 × 1024bit
1MB1024KB = 1024 × 1024Byte
  • 使用sizeof查看数据长度
    • 长度在不同平台是不一样
      在这里插入图片描述
#include <stdio.h>

int main() {
    // 通过sizeof打印各种类型的长度(大小)
    printf("char length = %d\n", sizeof(char));
    printf("short length = %d\n", sizeof(short));
    printf("int length = %d\n", sizeof(int));
    printf("long length = %d\n", sizeof(long));
    printf("float length = %d\n", sizeof(float));
    printf("double length = %d\n", sizeof(double));
    printf("long double length = %d\n", sizeof(long double));

    // 定义int类型变量,sizeof打印变量的大小
    int a;
    printf("a length = %d\n", sizeof(a));

    return 0;
}

可移植的类型

  • C语言程序在移植过程中可能会出现不同平台数据类型不兼容
  • 为了解决这个问题,C语言在可移植类型 stdint.h 和 inttype.h 中规定了精确宽度整数类型,以确保C语言的类型在各系统内功能相同
    示例代码:
#include <stdio.h>
#include <inttypes.h>

int main() {
    // 8位整型
    int8_t a=127;
    printf("%d\n", sizeof(a));

    // 16位整型
    int16_t b = 127;
    printf("%d\n", sizeof(b));

    // unsigned 无符号,没有符号位,数值为正数
    uint8_t c = 255;
    uint16_t d = 200;

    return 0;
}

常量

与变量不同,常量的值在程序运行时不会改变,常量可以用于多种情况,例如:

  • 为程序中使用的常见数值赋值,如圆周率、自然对数等
  • 为程序中使用的特定值赋值,如文件路径、IP地址等
  • 为程序中使用的枚举值赋值,如表示一组事物状态的标识符
类型常量
整型常量100, 200, -100, 0
实型常量3.14, 0.125, -3.123
字符型常量‘a’, ‘b’, ‘1’
字符串常量“a”, “ab”, “12356”

自定义的常量

常量的定义方式有两种:

// 预处理常量
#define PI 3.14

// const常量
const double pi2 = 3.14;

示例代码:

#include <stdio.h>
// 预处理常量
#define PI 3.14

int main() {
    // const常量
    const double pi2 = 3.14;

    // 常量不能修改,以下代码是错误的
    PI = 3.33;
    pi2 = 3.33;

    return 0;
}

系统定义的常量

  • 这些常量的值在不同平台是不一样的
    float.h:
    在这里插入图片描述
    limits.h:
    在这里插入图片描述
    示例代码:
#include <stdio.h>
#include <float.h>
#include <limits.h>

int main() {
    printf("%lf\n", FLT_MIN);
    printf("%lf\n", FLT_MAX);
    printf("%d\n", CHAR_BIT);
    printf("%d\n", CHAR_MIN);
    printf("%d\n", CHAR_MAX);
    printf("%d\n", SHRT_MIN);
    printf("%d\n", SHRT_MAX);
    printf("%d\n", INT_MIN);
    printf("%d\n", INT_MAX);
    printf("%ld\n", LONG_MIN);
    printf("%ld\n", LONG_MAX);

    return 0;
}

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

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

相关文章

Android事件分发

Android事件分发是指触摸屏幕的事件分发&#xff0c;在手指触摸屏幕后所产生的一系列事件中&#xff0c;典型的事件类型有如下几种: MotionEvent.ACTION_DOWN ——手指刚接触屏幕MotionEvent.ACTION_MOVE——手指在屏幕上面滑动MotionEvent.ACTION_UP——手指从屏幕上松开的一…

C语言每日一题 ----计算日期到天数转换(Day 2)

本专栏为c语言练习专栏&#xff0c;适合刚刚学完c语言的初学者。本专栏每天会不定时更新&#xff0c;通过每天练习&#xff0c;进一步对c语言的重难点知识进行更深入的学习。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C语言天天练 &#x…

m3u8 blob视频免费下载

F12点开找到这个视频url最后是.m3u8结尾 http://blog.luckly-mjw.cn/tool-show/m3u8-downloader/index.html 在上边的网址转Mp4下载即可

HBase集群环境搭建与测试

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 个人主页&#xff1a;beixi 本文章收录于专栏&#xff08;点击传送&#xff09;&#xff1a;【大数据学习】 &#x1f493;&#x1f493;持续更新中&#xff0c;感谢各位前辈朋友们支持…

【第四阶段】kotlin语言的List创建与元素获取

1.list创建 val list listOf("jave","kotlin","c","c")2.list集合获取的三种方式 开发过程中尽量使用getOrElse()或者getOrNull&#xff0c;因为他可以防止崩溃取值 package Stage4fun main() {//list 创建val list listOf("jav…

m4s格式转换mp4

先安装 ffmpeg&#xff0c;具体从官网可以查到&#xff0c;https://ffmpeg.org&#xff0c;按流程走。 转换代码如下&#xff0c;可以任意选择格式导出 import subprocess import osdef merge_audio_video(input_audio_path, input_video_path, output_mp4_path):# 构建 FFmpe…

ViT论文Pytorch代码解读

ViT论文代码实现 论文地址&#xff1a;https://arxiv.org/abs/2010.11929 Pytorch代码地址&#xff1a;https://github.com/lucidrains/vit-pytorch ViT结构图 调用代码 import torch from vit_pytorch import ViTdef test():v ViT(image_size 256, patch_size 32, num_cl…

【第四阶段】kotlin语言可变list集合

1.可变list集合 完整写法 var list:MutableList<String> mutableListOf<String>("java","kotlin","c","c") 省略写法 var list mutableListOf("java","kotlin","c","c")fun ma…

CobaltStrike提权

攻击机&#xff1a;Kali Linux 靶 机&#xff1a;Windows 7 一、上线CS 复制命令&#xff0c;在靶机执行上线CS 2.安装插件&#xff0c;获取shell https://github.com/rsmudge/ElevateKit 上线CS 右击shell&#xff0c;选择插件 有七个模块可以利用&#xff0c;可以逐一…

C++实现YOLOP

C实现YOLOP 一、简介 使用OpenCV部署全景驾驶感知网络YOLOP&#xff0c;可同时处理交通目标检测、可驾驶区域分割、车道线检测&#xff0c;三项视觉感知任务&#xff0c;依然是包含C和Python两种版本的程序实现 onnx文件从百度云盘下载&#xff0c;链接&#xff1a;https://…

【AutoLayout案例07-如何通过代码添加约束 Objective-C语言】

一、那么,接下来,我们就给大家介绍一下,如何通过代码,来实现这个AutoLayout 1.咱们之前是不是都是通过,storyboard、来拖、拉、拽、的方式实现的吧 现在给大家介绍一下,如何通过代码,来实现 在继续介绍,如何通过代码,来实现AutoLayout之前呢, 我们先要给大家补充一…

基于Java+SpringBoot+Vue前后端分离疫苗发布和接种预约系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

前端开发之Element Plus的分页组件el-pagination显示英文转变为中文

前言 在使用element的时候分页提示语句是中文的到了element-plus中式英文的&#xff0c;本文讲解的就是怎样将英文转变为中文 效果图 解决方案 如果你的element-plus版本为2.2.29以下的 import { createApp } from vue import App from ./App.vue import ElementPlus from …

ruoyi-vue-plus 配置邮箱

ruoyi-vue-plus 配置邮箱 &#x1f4d4; 千寻简笔记介绍 千寻简笔记已开源&#xff0c;Gitee与GitHub搜索chihiro-notes&#xff0c;包含笔记源文件.md&#xff0c;以及PDF版本方便阅读&#xff0c;且是用了精美主题&#xff0c;阅读体验更佳&#xff0c;如果文章对你有帮助请…

Java实现根据短连接获取1688商品详情数据,1688淘口令接口,1688API接口封装方法

要通过1688的API获取商品详情数据&#xff0c;您可以使用1688开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例&#xff0c;展示如何通过1688开放平台API获取商品详情属性数据接口&#xff1a; 首先&#xff0c;确保您已注册成为1688开放平台的开发者&#xf…

网络工程师的尽头是……

大家好&#xff0c;我是许公子。 最近工作挺忙&#xff0c;很久没有给你们输出文章了&#xff0c;抽空和大家唠嗑唠嗑。 前两天&#xff0c;一个实习生问了我这个问题&#xff1a; “网络工程师的尽头是什么&#xff1f;” 我当时一下子&#xff0c;脑子空白了&#xff0c;…

stackoverflow问题

Stack Overflow requires external JavaScript from another domain, which is blocked or failed to load. stackoverflow引用了谷歌中被屏ajax.googleapis.com的jquery.min.js文件。“https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js” 方案1.打开网站…

Viobot算法控制

一.上位机控制 状态反馈在系统反馈出会根据当前系统状态显示。 控制是在操作栏里面的一个选项三个按键。具体的已经在前面一篇基本功能使用及介绍中讲过了。 二.ROS控制 算法的控制我们也整合成了一个ROS msg&#xff0c;具体的msg信息可以查看demo里面的msg包的algo_ctrl.m…

Arduino RGBLED灯 模块学习与使用

Arduino RGBLED灯模块学习与使用 硬件原理制作衍生连接线Mixly程序Arduino程序演示视频 人生如逆旅&#xff0c;我亦是行人。 —— 苏轼江客:时荒 硬件原理 RGBLED灯三个引脚分别控制三个LED灯的亮度&#xff0c;RGB分别是red&#xff0c;green&#xff0c;blue的英文缩写&…

iOS - 资源按需加载 - ODR

一、瘦身技术大图 二、On-Demand Resources 简介 将其保存管理在苹果的服务器&#xff0c;按需使用资源、优化包体积&#xff0c;实现更小的应用程序。ODR 的好处&#xff1a; 应用体积更小&#xff0c;下载更快&#xff0c;提升初次启动速度资源会在后台下载操作系统将会在磁…