C语言入门教程100讲(6)类型修饰符

文章目录

      • 1. 什么是类型修饰符?
      • 2. 常见的类型修饰符
      • 3. 类型修饰符的使用
        • 3.1 `short` 和 `long`
        • 3.2 `signed` 和 `unsigned`
      • 4. 类型修饰符的组合
      • 5. 示例代码
        • 代码解析:
        • 输出结果:
      • 6. 常见问题
        • 问题 1:`short` 和 `long` 的具体大小是多少?
        • 问题 2:`unsigned` 类型的取值范围是什么?
        • 问题 3:类型修饰符可以用于浮点数吗?
      • 7. 扩展练习

1. 什么是类型修饰符?

类型修饰符是 C 语言中用于修改基本数据类型的属性(如大小、符号性)的关键字。通过使用类型修饰符,可以更灵活地定义变量,以满足不同的需求。

2. 常见的类型修饰符

C 语言中常用的类型修饰符包括:

  • short:用于减小整型变量的存储空间。
  • long:用于增大整型变量的存储空间。
  • signed:用于声明有符号的整型变量(默认)。
  • unsigned:用于声明无符号的整型变量。

3. 类型修饰符的使用

3.1 shortlong
  • shortlong 用于修饰整型变量,改变其存储大小。
  • 语法:
    short int 变量名;  // 短整型
    long int 变量名;   // 长整型
    
  • 示例:
    short int age = 25;       // 短整型,占用 2 字节
    long int population = 1000000L;  // 长整型,占用 4 或 8 字节
    
3.2 signedunsigned
  • signedunsigned 用于修饰整型变量的符号性。
  • 语法:
    signed int 变量名;   // 有符号整型(默认)
    unsigned int 变量名; // 无符号整型
    
  • 示例:
    signed int temperature = -10;  // 有符号整型,可以存储负数
    unsigned int score = 100;      // 无符号整型,只能存储非负数
    

4. 类型修饰符的组合

类型修饰符可以组合使用,例如:

  • unsigned short int:无符号短整型。
  • long long int:长长整型(64 位整数)。

5. 示例代码

以下是一个使用类型修饰符的示例程序:

#include <stdio.h>int main() {short int age = 25;               // 短整型long int population = 1000000L;   // 长整型unsigned int score = 100;         // 无符号整型// 输出结果printf("年龄: %hd\n", age);printf("人口: %ld\n", population);printf("分数: %u\n", score);return 0;
}
代码解析:
  1. short int age = 25;

    • 声明一个短整型变量 age,占用 2 字节。
  2. long int population = 1000000L;

    • 声明一个长整型变量 population,占用 4 或 8 字节。
  3. unsigned int score = 100;

    • 声明一个无符号整型变量 score,只能存储非负数。
  4. 格式化输出

    • %hd 用于输出 short int 类型。
    • %ld 用于输出 long int 类型。
    • %u 用于输出 unsigned int 类型。
输出结果:
年龄: 25
人口: 1000000
分数: 100

6. 常见问题

问题 1:shortlong 的具体大小是多少?
  • short 通常占用 2 字节,long 通常占用 4 字节(32 位系统)或 8 字节(64 位系统)。
问题 2:unsigned 类型的取值范围是什么?
  • unsigned int 的取值范围是 0 到 4,294,967,295(32 位系统)。
问题 3:类型修饰符可以用于浮点数吗?
  • 不可以。类型修饰符只能用于整型变量。

7. 扩展练习

  1. 修改程序,使用 unsigned short int 存储一个较小的非负整数,并输出。
  2. 尝试使用 long long int 存储一个非常大的整数,并输出。
  3. 编写一个程序,计算两个无符号整数的和,并输出结果。

如果你需要其他文章的内容,请告诉我,我会继续输出!

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

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

相关文章

Linux-Ubuntu 系统学习笔记 | 从入门到实战

&#x1f4d8; Linux-Ubuntu 系统学习笔记 | 从入门到实战 &#x1f4dc; 目录 环境安装基本操作Linux操作系统介绍文件系统常用命令用户权限管理编辑器vimGCC编译器动态库与静态库Makefile 1. 环境安装 &#x1f31f; 下载镜像 推荐使用清华大学开源镜像站下载Ubuntu镜像&a…

防火墙带宽管理

拓扑 配置 [fw]interface GigabitEthernet 0/0/0 [fw-GigabitEthernet0/0/0]service-manage all permit [fw]interface GigabitEthernet 1/0/0 [fw-GigabitEthernet1/0/0]ip address 12.0.0.1 24 [fw]interface GigabitEthernet 1/0/1 [fw-GigabitEthernet1/0/1]ip ad…

一人系统 之 为什么要做一人系统?

一人系统 之 赚钱认知篇&#xff08;下&#xff09; 本文 2119个字&#xff0c;大概阅读时间 16分钟。 在上一篇文章中&#xff0c;主要讲了以下三个内容&#xff1a; 什么是好的工作&#xff1f;时薪高&#xff0c;并且有能力提升&#xff0c;而且最终可以独立创业的工作&…

基于springboot的电影院管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 互联网技术的成熟和普及&#xff0c;势必会给人们的生活方式带来不同程度的改变。越来越多的经营模式中都少不了线上运营&#xff0c;互联网正强力推动着社会和经济发展。国人对民族文化的自信和不同文化的包容&#xff0c;再加上电影行业的发展&#xff0c;如此繁荣吸引…

Java安全-类的动态加载

类的加载过程 先在方法区找class信息&#xff0c;有的话直接调用&#xff0c;没有的话则使用类加载器加载到方法区(静态成员放在静态区&#xff0c;非静态成功放在非静态区)&#xff0c;静态代码块在类加载时自动执行代码&#xff0c;非静态的不执行;先父类后子类&#xff0c;…

ROS多机通信功能包——Multibotnet

引言 这是之前看到一位大佬做的集群通信中间件&#xff0c;突发奇想&#xff0c;自己也来做一个&#xff0c;实现更多的功能、更清楚的架构和性能更加高效的ROS多机通信的功能包 链接&#xff1a;https://blog.csdn.net/benchuspx/article/details/128576723 Multibotnet Mu…

C++:背包问题习题

1. 货币系统 1371. 货币系统 - AcWing题库 给定 V 种货币&#xff08;单位&#xff1a;元&#xff09;&#xff0c;每种货币使用的次数不限。 不同种类的货币&#xff0c;面值可能是相同的。 现在&#xff0c;要你用这 V 种货币凑出 N 元钱&#xff0c;请问共有多少种不同的…

IT工具 | node.js 进程管理工具 PM2 大升级!支持 Bun.js

P(rocess)M(anager)2 是一个 node.js 下的进程管理器&#xff0c;内置负载均衡&#xff0c;支持应用自动重启&#xff0c;常用于生产环境运行 node.js 应用&#xff0c;非常好用&#x1f44d; &#x1f33c;概述 2025-03-15日&#xff0c;PM2发布最新版本v6.0.5&#xff0c;这…

2025年01月02日浙江鼎永前端面试

目录 webpack 和 vite 区别react fiber 架构vue diff 算法react diff 算法hooks 源码垂直水平布局项目介绍单点登录大文件上传微前端 1. webpack 和 vite 区别 Webpack 和 Vite 是两种不同的前端构建工具&#xff0c;它们在设计理念、性能表现和使用场景上存在显著差异。以下…

1.企业级AD活动目录核心解析:架构、组件与集成实践

在当今数字化时代&#xff0c;企业级网络环境日益复杂&#xff0c;高效、安全的资源管理和用户认证成为企业 IT 运营的关键。AD&#xff08;Active Directory&#xff09;活动目录作为微软 Windows 系列服务器中的重要目录服务&#xff0c;为企业级网络管理提供了强大的解决方案…

【数据分享】2014-2024年我国各城市逐年空气质量指数(AQI)数据

空气质量指数&#xff08;AQI&#xff09;是一个衡量空气污染程度的综合指标&#xff0c;它并不直接表示具体污染物的浓度值&#xff0c;而是基于多种污染物的浓度进行的综合评价&#xff0c;具体基于六种主要污染物的浓度&#xff1a;PM2.5、PM10、SO₂、NO₂、O₃和CO。AQI是…

【C++】深入理解list迭代器的设计与实现

深入理解list迭代器的设计与实现 引言1、链表基础结构2、链表迭代器的封装2.1 初步封装迭代器类2.2 引入const迭代器2.2.1 参考STL源代码2.2.2 完善迭代器 3、迭代器实现机制结语 引言 在STL容器中&#xff0c;list作为经典的双向链表容器&#xff0c;其迭代器设计体现了C模板编…

C语言基础系列【27】typedef

博主介绍&#xff1a;程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章&#xff0c;首发gzh&#xff0c;见文末&#x1f447;&#x1f…

【CXX-Qt】2.5 继承

某些 Qt API 要求你从抽象基类中重写某些方法&#xff0c;例如 QAbstractItemModel。 为了支持直接从 Rust 中创建这样的子类&#xff0c;CXX-Qt 提供了多种辅助工具。 某些基类可能需要特殊的构造参数。这可以通过使用自定义构造函数来实现。 访问基类方法 要在 Rust 中访…

磁盘清理工具-TreeSize Free介绍

TreeSizeFree是一个磁盘空间管理工具&#xff0c;主要用于分析磁盘使用情况&#xff0c;帮助用户找到占用空间大的文件和文件夹: 特点&#xff1a;按大小排序&#xff1a;快速找到占用空间最大的文件或文件夹 一般可以删除: 扫描 C:\Users\XXX\AppData\Local\Temp 或 C:\Window…

OpenCV中距离公式

一、各类距离公式总结 常见距离公式 欧氏距离&#xff1a; 曼哈顿距离&#xff08;L1&#xff09;‌&#xff1a; 切比雪夫距离&#xff08;Chessboard&#xff09;‌&#xff1a; 1、点与点距离(欧氏距离) ‌二维空间‌ 设两点坐标为 P1(x1,y1)、P2(x2,y2)&#xff0c;其距离…

Vue.js 模板语法全解析:从基础到实战应用

引言 在 Vue.js 的开发体系中&#xff0c;模板语法是构建用户界面的核心要素&#xff0c;它让开发者能够高效地将数据与 DOM 进行绑定&#xff0c;实现动态交互效果。通过对《Vue.js 快速入门实战》中关于 Vue 项目部署章节&#xff08;实际围绕 Vue 模板语法展开&#xff09;…

论文笔记(七十三)Gemini Robotics: Bringing AI into the Physical World

Gemini Robotics: Bringing AI into the Physical World 文章概括1. 引言2. Gemini 2.0的具身推理2.1. 具身推理问答&#xff08;ERQA&#xff09;基准测试2.2. Gemini 2.0的具身推理能力2.3. Gemini 2.0支持零样本和少样本机器人控制 3. 使用 Gemini Robotics 执行机器人动作3…

centos7搭建postgresql12主从

主从搭建 192.168.159.101 node1 主库&#xff08;读写&#xff09; 192.168.159.102 node2 备库&#xff08;只读&#xff09; 两台机器首先安装postgrsql 主库 postgres用户操作&#xff1a; 修改postgresql.conf # 在文件中修改(此配置仅用于远程访问, 流复制后续还有额外…

嵌入式基础知识学习:SPI通信协议是什么?

SPI&#xff08;Serial Peripheral Interface&#xff09;是串行外设接口的缩写&#xff0c;是一种广泛应用于嵌入式系统的高速同步串行通信协议&#xff0c;由摩托罗拉公司于20世纪80年代提出。以下是其核心要点&#xff1a; 一、SPI的核心定义与特点 基本特性 全双工同步通信…