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

C语⾔数据类型和变量

C 语言的数据类型

  • 类型分类

  • C 语言提供丰富的数据类型,包括字符型(char、signed char、unsigned char)、整型(short、int、long 等多种,且各有 signed 和 unsigned 修饰形式) 、浮点型(float、double、long double)以及 C99 引入的布尔类型(_Bool )布尔类型的使⽤得包含头⽂件 <stdbool.h>布尔类型变量的取值是: true 或者 false。不同数据类型用于描述不同特征的数据,如整型描述整数,浮点型描述小数。

  • 类型长度与 sizeof 操作符

  • 使用sizeof操作符可计算数据类型或变量的长度,单位为字节。其操作数可以是类型、变量或表达式,且表达式在计算时不真实参与运算。在 VS2022 X64 配置下,char类型长度为 1 字节,int为 4 字节等 。

变量

  • 变量创建与初始化

  • 变量用于存储变化的值,创建时需指定数据类型和变量名,可进行初始化。如int age = 18;创建并初始化了一个整型变量age 。
  • 变量分类

  • 分为全局变量(在大括号外部定义,作用域为整个工程)和局部变量(在大括号内部定义,作用域局限于所在局部范围) 。当局部变量和全局变量同名时,局部变量优先使用。例如:
#include <stdio.h>
int global = 2023;
int main() {
    int local = 2018;
    int global = 100;  // 局部变量global,优先使用
    printf("局部变量global: %d\n", global); 
    printf("全局变量global: %d\n", ::global); 
    return 0;
}

 全局变量和局部变量在内存中存储在哪⾥呢?

内存中的三个区域:栈区、堆区、静态区。
1. 局部变量是放在内存的栈区
2. 全局变量是放在内存的静态区
3. 堆区是⽤来动态内存管理的

操作符

  • 算术操作符

  • 包括+-*/% ,用于基本的算术运算。整数除法会丢弃小数部分,%只能用于整数求模运算 。例如:

#include <stdio.h>
int main() {
    int a = 10, b = 3;
    int sum = a + b;
    int sub = a - b;
    int mul = a * b;
    int div1 = a / b; 
    int mod = a % b; 
    printf("和: %d\n", sum);
    printf("差: %d\n", sub);
    printf("积: %d\n", mul);
    printf("商: %d\n", div1); 
    printf("余数: %d\n", mod); 
    return 0;
}
  • 赋值操作符与复合赋值符

  • 赋值操作符=用于给变量赋值,也支持连续赋值,但不建议使用,因其不易理解。复合赋值符(如+=-= 等)简化了代码编写。例如:
#include <stdio.h>
int main() {
    int a = 5;
    // 普通赋值
    a = a + 3;
    // 复合赋值
    a += 3; 
    printf("a的值: %d\n", a); 
    return 0;
}
  • 单目操作符

  • ++(前置和后置自增)、--(前置和后置自减)、+(正号)、-(负号) 。前置操作符先进行运算再使用变量值,后置操作符先使用变量值再进行运算。例如:
#include <stdio.h>
int main() {
    int a = 10, b, c;
    b = ++a; 
    c = a++; 
    printf("前置自增后a: %d, b: %d\n", a, b); 
    printf("后置自增后a: %d, c: %d\n", a, c); 
    return 0;
}

数据类型的修饰与取值范围

  • signed 和 unsigned 修饰

  • signed表示类型带正负号,unsigned表示类型只表示零和正整数。int默认等同于signed int ,字符类型char默认是否带正负号由系统决定 。
  • 取值范围:不同整型和浮点型数据类型有各自的取值范围,可通过limits.hfloat.h头文件查看。如 16 位signed short int取值范围是 - 32768 ~ 32767,unsigned short int是 0 ~ 65535 。

输入输出函数

  • printf 函数

  • 用于将文本输出到屏幕,可通过占位符定制输出格式。占位符与数据类型对应,如%d对应整数,%s对应字符串等 。例如:

    #include <stdio.h>
    int main() {
        int num = 123;
        float f = 3.14f;
        char str[] = "Hello";
        printf("整数: %d\n", num);
        printf("浮点数: %.2f\n", f); 
        printf("字符串: %s\n", str); 
        return 0;
    }
  • scanf 函数

  • 用于读取用户键盘输入,其语法与printf类似,通过占位符指定输入数据类型,变量前需加&取地址符(指针变量除外)。例如:

#include <stdio.h>
int main() {
    int num;
    printf("请输入一个整数: ");
    scanf("%d", &num);
    printf("你输入的整数是: %d\n", num);
    return 0;
}

http://www.dtcms.com/a/48984.html

相关文章:

  • charles 抓取https<仅web端>
  • c++ 预处理器和iostream 文件
  • 第十四届蓝桥杯:(二分算法)字串简写
  • ArcGIS操作:11 计算shp矢量面的质心坐标
  • 【朝夕教育】《鸿蒙原生应用开发从零基础到多实战》004-TypeScript 中的泛型
  • JavaScript 变量的使用
  • Windows 环境下 Nginx、PHP 与 ThinkPHP 开发环境搭建
  • 关于服务器cpu过高的问题排查
  • 软考网络安全工程师条件
  • 探秘基带算法:从原理到5G时代的通信变革【八】QAM 调制 / 解调
  • golang的io
  • NL2SQL-基于Dify+阿里通义千问大模型,实现自然语音自动生产SQL语句
  • C++初阶--基本语法讲解
  • 数据安全_笔记系列11:GDPR(通用数据保护条例)合规框架
  • CDefView::_OnFSNotify函数分析
  • STM32MP157A单片机移植Linux系统使用python链接云服务器
  • Spring统一格式返回
  • Spring学习笔记03——Spring Boot的文件结构
  • XGMII(10 Gigabit Media Independent Interface)详解
  • Mac上安装Pycharm
  • 【音视频】音频基础
  • 前端项目打包生成 JS 文件的核心步骤
  • 飞牛NAS玩转DeepSeek-R1大模型并实现内外网自由互通
  • AI浏览器BrowserUse:本机运行环境准备(二)
  • Linux搭建个人大模型RAG-(ollama+deepseek+anythingLLM)
  • java jar包内的jar包如何打补丁
  • 51单片机编程学习笔记——74HC245八路三态输出双向收发器
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_conf_read_token
  • 矩阵压缩存储
  • 大白话TypeScript 第十章TypeScript 学习全阶段详细总结