当前位置: 首页 > news >正文

C的数据类型与变量

数据类型与变量

在C语言中,数据类型用于定义变量或函数返回值所能存储的数据的类型。理解不同的数据类型以及如何定义和使用变量,是掌握C语言编程的基础。


1 C语言的数据类型

C语言提供了多种数据类型,分为基本数据类型和用户自定义数据类型。基本数据类型包括整型、浮点型、字符型、枚举类型和void类型等。

1.1 整型

整型用于表示整数。C语言提供了多种整型,分别用于存储不同范围的整数。

  • 基本整型
    • int:标准整数类型,通常占用4个字节(32位)。
    • short:短整数类型,通常占用2个字节(16位)。
    • long:长整数类型,通常占用4个或8个字节(32位或64位,取决于系统)。
    • long long:更长的整数类型,通常占用8个字节(64位)。
  • 有符号与无符号
    • 默认情况下,整型是有符号的(signed),可以表示正数、负数和零。
    • 使用unsigned关键字可以定义无符号整型,只表示零和正数,范围更大。

示例

#include <stdio.h>int main() {int a = 10;              // 有符号整型unsigned int b = 20;     // 无符号整型short c = -5;            // 有符号短整型long d = 100000L;        // 有符号长整型long long e = 10000000000LL; // 有符号长长整型printf("int a = %d\n", a);printf("unsigned int b = %u\n", b);printf("short c = %d\n", c);printf("long d = %ld\n", d);printf("long long e = %lld\n", e);return 0;
}

输出

int a = 10
unsigned int b = 20
short c = -5
long d = 100000
long long e = 10000000000
1.2 浮点型

浮点型用于表示带有小数部分的实数。C语言提供了几种浮点类型,以支持不同的精度需求。

  • float:单精度浮点数,通常占用4个字节。
  • double:双精度浮点数,通常占用8个字节。
  • long double:更高精度的浮点数,通常占用12或16个字节,具体取决于编译器和系统。

示例

#include <stdio.h>int main() {float pi = 3.14f;          // 单精度浮点数double e = 2.718281828;    // 双精度浮点数long double phi = 1.61803398875L; // 长双精度浮点数printf("float pi = %.2f\n", pi);printf("double e = %.9lf\n", e);printf("long double phi = %.11Lf\n", phi);return 0;
}

输出

float pi = 3.14
double e = 2.718281828
long double phi = 1.61803398875
1.3 字符型

字符型用于存储单个字符。C语言提供了char类型来表示字符,同时也可以用于存储小整数(因为char实际上是一个整数类型)。

  • char:占用1个字节(8位),可以表示ASCII字符。
  • unsigned char:无符号字符类型,范围从0到255。
  • signed char:有符号字符类型,范围从-128到127。

示例

#include <stdio.h>int main() {char letter = 'A';          // 字符'A'unsigned char uchar = 200;  // 无符号字符signed char schar = -100;   // 有符号字符printf("char letter = %c\n", letter);printf("unsigned char uchar = %u\n", uchar);printf("signed char schar = %d\n", schar);return 0;
}

输出

char letter = A
unsigned char uchar = 200
signed char schar = -100
1.4 枚举类型

**枚举类型(enum)**用于定义一组具名的整数常量,使代码更加易读和易维护。通过enum可以为相关的常量赋予有意义的名字。

示例

#include <stdio.h>// 定义枚举类型Day
enum Day {SUNDAY,    // 0MONDAY,    // 1TUESDAY,   // 2WEDNESDAY, // 3THURSDAY,  // 4FRIDAY,    // 5SATURDAY   // 6
};int main() {enum Day today = WEDNESDAY;printf("Today is day number %d\n", today);if (today == WEDNESDAY) {printf(</
http://www.dtcms.com/a/313489.html

相关文章:

  • 2025 Java开发真实试题-阿里面试题分析
  • C语言与数据结构:从基础到实战
  • 机器学习——过采样(OverSampling),解决类别不平衡问题,案例:逻辑回归 信用卡欺诈检测
  • 前端工程化:Vue3(一)
  • 2025年EAAI SCI1区TOP,森林救援调度与路径规划:一种新型蚁群优化算法应用,深度解析+性能实测
  • 智能化门禁常见问题处理思路
  • Linux mount挂载选项详解(重点关注nosuid)
  • 使用Perl和库WWW::Curl的爬虫程序!
  • [spring-cloud: 服务注册]-源码解析
  • Spring Boot AOP 优雅实现异常重试机制
  • 多线程异步日志系统与实现及 TCP/IP C/S 模型
  • IO流-字节流-FileOutputStream
  • day50预训练模型 CBAM注意力
  • Effective C++ 条款20:宁以pass-by-reference-to-const替换pass-by-value
  • LeetCode 2122.还原原数组
  • centos7安装桌面客户软件并远程连接
  • 学习笔记《区块链技术与应用》第五天 分叉
  • Matlab 高斯牛顿法拟合曲线
  • 力扣-200.岛屿数量
  • 01数据结构-二叉搜索树
  • PAT 甲级题目讲解:1012《The Best Rank》
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-55,(知识点:STM32,外设及其特点)
  • 力扣-124.二叉树中的最大路径和
  • LLM调研
  • 计算用户日活:从数据设计到可视化的全流程(高频场景题)
  • 秋招笔记-8.3
  • AUTOSAR进阶图解==>AUTOSAR_RS_SystemTemplate
  • 元宇宙三维化会给游戏行业带来哪些改变?
  • 什么是列存储(Columnar Storage)?深度解析其原理与应用场景
  • 常见的深度学习模块/操作中的维度约定(系统性总结)