3 数据类型、运算符与表达式-3.1 C语言的数据类型和3.2 常量与变量

  1. 数据类型
    1. 基本类型
      1. 整型
      2. 字符型
      3. 实型(浮点型)
        1. 单精度型
        2. 双精度型
      4. 枚举类型
    2. 构造类型
      1. 数组类型
      2. 结构体类型
      3. 共用体类型
    3. 指针类型
    4. 空类型
#include <stdio.h>
#include <string.h>
#include <stdbool.h> // 包含布尔类型定义
// 常量和符号常量
#define PRICE 30// 函数返回空类型
void greet()
{printf("你好!\n");
}// 定义一个枚举类型,表示一周中的几天
enum Weekday
{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
};// 定义一个结构体类型,表示学生信息
struct Student
{char name[50];int age;float score;
};// 定义一个共同体类型,表示既可以存储整数也可以存储浮点数的变量
union Data
{int intValue;float floatValue;
};int main()
{int age = 30; // 整型变量printf("年龄: %d\n", age);char initial = 'A'; // 字符型变量printf("首字母: %c\n", initial);float height = 170.5f; // 单精度浮点型double pi = 3.14159;   // 双精度浮点型printf("身高: %.1f 米\n", height);printf("π值: %lf\n", pi);bool isMale = true; // 布尔型变量printf("性别: %s\n", isMale ? "男" : "女");greet(); // 调用无返回值的函数int numbers[5] = {1, 2, 3, 4, 5}; // 整型数组for (int i = 0; i < 5; i++){printf("numbers[%d]: %d\n", i, numbers[i]);}int num = 100;int *ptr = &num; // 整型指针printf("数值: %d\n", num);printf("通过指针访问数值: %d\n", *ptr);enum Weekday today = Wednesday; // 声明并初始化一个枚举变量// 打印今天是周几switch (today){case Monday:printf("今天是星期一。\n");break;case Tuesday:printf("今天是星期二。\n");break;case Wednesday:printf("今天是星期三。\n");break;case Thursday:printf("今天是星期四。\n");break;case Friday:printf("今天是星期五。\n");break;case Saturday:printf("今天是星期六。\n");break;case Sunday:printf("今天是星期日。\n");break;}// 注意:枚举值默认从0开始,但可以指定起始值enum{Red = 100, // 从100开始Green,Blue};enum{ // 也可以不命名枚举类型,直接使用Jan = 1,Feb,Mar};printf("Green 的值是:%d\n", Green); // 输出 Green 的值,基于前面的定义应为 101struct Student student1; // 声明一个结构体变量// 初始化结构体变量strcpy(student1.name, "张三");student1.age = 20;student1.score = 88.5;// 打印学生信息printf("姓名: %s, 年龄: %d, 成绩: %.1f\n", student1.name, student1.age, student1.score);union Data data;// 存储整数data.intValue = 100;printf("作为整数时的值: %d\n", data.intValue);// 同一块内存现在存储浮点数data.floatValue = 3.14;// 注意:这里打印的是之前整数值转换成浮点数的结果,因为共用体在同一时间只能有效存储一种类型的数据printf("转换为浮点数后的值(可能不准确): %.2f\n", data.floatValue);int num1, total;num1 = 10;total = num1 * PRICE;printf("total = % d", total);return 0;
}

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

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

相关文章

AI大模型日报#0610:港大等1bit大模型“解决AI能源需求”、谷歌开源TimesFM时序预测模型

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE 4.0&#xff09;、“零一万物”&#xff08;Yi-Large&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅读&#xf…

Jmeter分布式、测试报告、并发数计算、插件添加方式、常用图表

Jmeter分布式 应用场景 当单个测试机无法模拟用户要求的业务场景时&#xff0c;可以使用多台测试机进行模拟&#xff0c;就是Jmeter的分布 式测试。 Jmeter分布式执行原理 Jmeter分布测试时&#xff0c;选择其中一台作为控制机&#xff08;Controller&#xff09;&#xff0c…

Spring5

文章目录 1. Spring 是什么&#xff1f;2. IoC3. Spring Demo4. IoC 创建对象的方式 / DI 方式注入的默认参数在哪里设定? 5. Spring 配置tx:annotation-driven 用于启用基于注解的事务管理 6. Bean的作用域7. 在Spring中有三种自动装配的方式1. 在xml中显式的配置2. 在java中…

RAG:如何从0到1搭建一个RAG应用

通过本文你可以了解到&#xff1a; 什么是RAG&#xff1f;如何搭建一个RAG应用&#xff1f;目前开源的RAG应用有哪些&#xff1f; 大模型学习参考&#xff1a; 1.大模型学习资料整理&#xff1a;大模型学习资料整理&#xff1a;如何从0到1学习大模型&#xff0c;搭建个人或企业…

定个小目标之刷LeetCode热题(15)

这道题直接就采用两数相加的规则&#xff0c;维护一个进阶值&#xff08;n&#xff09;即可&#xff0c;代码如下 class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {// 新建一个值为0的头结点ListNode newHead new ListNode(0);// 创建几个指针用于…

JAVA基础【String类】

在 Java 编程中&#xff0c;String 类是一个非常重要且常用的类&#xff0c;用于表示字符串对象。本文将详细介绍 Java 中的 String 类&#xff0c;包括定义、常用方法、不可变性特性以及字符串拼接等方面的内容。 1. String 类的定义与创建 定义 String 是 Java 中的一个类…

【C++初阶学习】第十三弹——优先级队列及容器适配器

C语言栈&#xff1a;数据结构——栈(C语言版)-CSDN博客 C语言队列&#xff1a;数据结构——队列&#xff08;C语言版&#xff09;-CSDN博客 C栈与队列&#xff1a;【C初阶学习】第十二弹——stack和queue的介绍和使用-CSDN博客 前言&#xff1a; 在前面&#xff0c;我们已经…

Android基础-自定义view

在Android开发中&#xff0c;自定义View是一个常见的需求&#xff0c;它允许开发者根据应用的具体需求创建独特的UI元素。自定义View可以极大地增强应用的用户界面和用户体验。下面将详细阐述Android中自定义View的方式和方法&#xff0c;包括基本的步骤、常见的技巧和一些深入…

2024.6.10 一

Python多进程 进程 一系列有序指令集用来实现某些功能,每个进程都有自己独立的一块内存空间&#xff0c;一个进程可以有多个线程. 程序就是我们安装好的应用,我们打开程序时,就创建了相应的进程,操作系统会为进程分配相应的资源 线程 是进程中的一个执行任务&#xff08;控制…

Java24:会话管理 过滤器 监听器

一 会话管理 1.cookie 是一种客户端会话技术&#xff0c;cookie由服务端产生&#xff0c;它是服务器存放在浏览器的一小份数据&#xff0c;浏览器 以后每次访问服务器的时候都会将这小份的数据带到服务器去。 //创建cookie对象 Cookie cookie1new Cookie("…

vuInhub靶场实战系列--Kioptrix Level #3

免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关。 目录 免责声明前言一、环境配置1.1 靶场信息1.2 靶场配置 二、信息收集2.1 主机发现2.1.1 netdiscover2.1.2 arp-scan主机扫描 2.2 端口扫描2.3 指纹识别2.4 目…

智能合约中外部调用漏洞

外部调用 &#xff1a; 在智能合约开发中&#xff0c;调用不受信任的外部合约是一个常见的安全风险点。这是因为&#xff0c;当你调用另一个合约的函数时&#xff0c;你实际上是在执行那个合约的代码&#xff0c;而这可能会引入你未曾预料的行为&#xff0c;包括恶意行为。下面…

基于Ascend C的FlashAttention算子性能优化最佳实践

LLM的Attention部分处理给计算系统带来巨大的计算和访存压力。业界先后出现FlashAttention、FlashAttention2等算法&#xff0c;通过计算等价和切分有效降低HBM数据访问量。 昇腾异构计算架构CANN针对昇腾AI处理器的片上内存和缓存大小&#xff0c;以及数据搬运通路&#xff0…

为Nanopi m1交叉编译opencv

为Nanopi m1交叉编译opencv 一、下载交叉编译器 根据之前的博客进行 二、下载opencv和必要库 sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devgit clone https://github.com/opencv/opencv.git cd opencv三、进行编…

鸿蒙开发必备:《DevEco Studio 系列一:实用功能解析与常用快捷键大全》

系列文章目录 文章目录 系列文章目录前言一、下载与安装小黑板 二、IDE被忽略的实用功能-帮助&#xff08;Help&#xff09;1.Quick Start2. API Reference3.FAQ 三、常用快捷键一、编辑二、查找或替换三、编译与运行四、调试五、其他 前言 DevEco Studio&#xff09;是基于In…

nginx-虚拟主机如何配置

8、 nginx 命令功能 nginx -c /path/nginx.conf # 以特定目录下的配置文件启动nginx: nginx -s reload # 修改配置后重新加载生效 nginx -s stop # 快速停止nginx nginx -s quit # 正常停止nginx nginx -t # 测试当前配置文件…

协程库——面试问题

1 同步、异步 1.1 同步 代码顺序执行&#xff0c;完全由用户控制. 同步阻塞 等待可读、可写的时候阻塞&#xff0c;不让出cpu。读、写之后&#xff0c;下面的代码才能执行、 同步非阻塞 等待可读、可写时&#xff0c;不会阻塞cpu&#xff0c;返回失败&#xff0c;设置错误码为…

I/O 系统的功能、模型与接口

目录 I/O 系统的基本功能 1. 设备独立性 2. 缓冲 3. 设备共享 4. 高速缓存 5. 设备管理 I/O 系统的层次结构与模型 1. 单块传输模型 2. 缓冲管理模型 3. 通道模型 4. 虚拟设备模型 5. 直接内存访问&#xff08;DMA&#xff09;模型 6. 层次结构示意图 I/O…

【代码随想录训练营】【Day 48】【动态规划-7】| 卡码 57, Leetcode 322, 279

【代码随想录训练营】【Day 48】【动态规划-7】| 卡码 57&#xff0c; Leetcode 322&#xff0c; 279 需强化知识点 python 的幂次计算&#xff0c; 10 ** 5&#xff0c; 10 **&#xff08;0.5&#xff09; 题目 卡码 57. 爬楼梯&#xff08;第八期模拟笔试&#xff09; 注…

RK3568-修改fiq-debugger调试串口

瑞芯微SDK默认将uart2_m0作为调试串口,以下方法将调试串口修改为uart5_m1。修改bootloader 修改/OK3568-linux-source/rkbin/tools/ddrbin_param.txt文件,5表示串口5。1表示复用m1。执行./ddrbin_tool ddrbin_param.txt ../bin/rk35/rk3568_ddr_1560MHz_v1.11.bin命令修改ub…