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

C语言入门教程100讲(13)其他运算符

文章目录

      • 1. 什么是其他运算符?
      • 2. 条件运算符(三元运算符)
        • 示例:
      • 3. 逗号运算符
        • 示例:
      • 4. sizeof 运算符
        • 示例:
      • 5. 地址运算符(`&`)
        • 示例:
      • 6. 指针运算符(`*`)
        • 示例:
      • 7. 示例代码
        • 代码解析:
        • 输出结果:
      • 8. 常见问题
        • 问题 1:条件运算符可以嵌套吗?
        • 问题 2:逗号运算符的作用是什么?
        • 问题 3:`sizeof` 运算符可以用于数组吗?
      • 9. 扩展练习

1. 什么是其他运算符?

除了常见的算术、关系、逻辑和位运算符外,C 语言还提供了一些特殊的运算符,用于实现特定的功能。这些运算符包括:

  • 条件运算符(三元运算符)
  • 逗号运算符
  • sizeof 运算符
  • 地址运算符(&
  • 指针运算符(*

2. 条件运算符(三元运算符)

条件运算符是 C 语言中唯一的三元运算符,语法如下:

条件 ? 表达式1 : 表达式2
  • 如果条件为真,则返回 表达式1 的值。
  • 如果条件为假,则返回 表达式2 的值。
示例:
int a = 10;
int b = 20;
int max = (a > b) ? a : b;  // max 的值为 20

3. 逗号运算符

逗号运算符用于将多个表达式连接在一起,按顺序执行,并返回最后一个表达式的值。语法如下:

表达式1, 表达式2, ..., 表达式N
示例:
int a = (10, 20, 30);  // a 的值为 30

4. sizeof 运算符

sizeof 运算符用于获取数据类型或变量占用的内存大小(以字节为单位)。语法如下:

sizeof(数据类型或变量)
示例:
int a = 10;
printf("int 类型的大小: %zu\n", sizeof(int));  // 输出 int 类型的大小
printf("变量 a 的大小: %zu\n", sizeof(a));     // 输出变量 a 的大小

5. 地址运算符(&

地址运算符用于获取变量的内存地址。语法如下:

&变量
示例:
int a = 10;
printf("变量 a 的地址: %p\n", &a);  // 输出变量 a 的地址

6. 指针运算符(*

指针运算符用于访问指针变量所指向的内存地址中的值。语法如下:

*指针变量
示例:
int a = 10;
int *p = &a;  // p 是指向 a 的指针
printf("指针 p 指向的值: %d\n", *p);  // 输出指针 p 指向的值

7. 示例代码

以下是一个使用其他运算符的示例程序:

#include <stdio.h>

int main() {
    // 条件运算符
    int a = 10, b = 20;
    int max = (a > b) ? a : b;
    printf("最大值: %d\n", max);

    // 逗号运算符
    int c = (10, 20, 30);
    printf("逗号运算符的结果: %d\n", c);

    // sizeof 运算符
    printf("int 类型的大小: %zu\n", sizeof(int));
    printf("变量 a 的大小: %zu\n", sizeof(a));

    // 地址运算符
    printf("变量 a 的地址: %p\n", &a);

    // 指针运算符
    int *p = &a;
    printf("指针 p 指向的值: %d\n", *p);

    return 0;
}
代码解析:
  1. 条件运算符

    • 比较 ab 的大小,返回较大的值。
  2. 逗号运算符

    • 按顺序执行表达式,并返回最后一个表达式的值。
  3. sizeof 运算符

    • 输出 int 类型和变量 a 的大小。
  4. 地址运算符

    • 输出变量 a 的内存地址。
  5. 指针运算符

    • 输出指针 p 指向的值。
输出结果:
最大值: 20
逗号运算符的结果: 30
int 类型的大小: 4
变量 a 的大小: 4
变量 a 的地址: 0x7ffee4b5c9ac
指针 p 指向的值: 10

8. 常见问题

问题 1:条件运算符可以嵌套吗?
  • 可以。条件运算符可以嵌套使用,但需要注意代码的可读性。
问题 2:逗号运算符的作用是什么?
  • 逗号运算符用于按顺序执行多个表达式,并返回最后一个表达式的值。
问题 3:sizeof 运算符可以用于数组吗?
  • 可以。sizeof 可以用于计算数组的总大小。例如:
    int arr[5];
    printf("数组 arr 的大小: %zu\n", sizeof(arr));  // 输出 20(假设 int 类型占 4 字节)
    

9. 扩展练习

  1. 修改程序,使用条件运算符判断一个数是否为偶数。
  2. 编写一个程序,使用逗号运算符计算多个表达式的值,并输出结果。
  3. 尝试使用 sizeof 运算符计算结构体的大小。

http://www.kler.cn/a/597915.html

相关文章:

  • 2025年了,5G还有三个新变化
  • QEMU 引导时分离内核和文件系统
  • Shell中sed的用法
  • 安防监控视频平台EasyNVR级联视频上云系统EasyNVS出现“Login error”报错的原因排查
  • 基于TCN-BiLSTM-Attention的序列数据预测(功率预测、故障诊断)模型及代码详解
  • 常⻅中间件漏洞--Tomcat
  • bootstrap 表格插件bootstrap table 的使用经验谈!
  • Rocky Linux 软件安装:Last metadata expiration check:
  • 某视频的解密下载
  • 潮流霓虹酸性渐变液体流体扭曲颗粒边缘模糊JPG背景图片设计素材 Organic Textures Gradients Collection
  • 1. 找不能被3、5和7整除的数并存入列表。
  • 深入理解Linux中的SCP命令:使用与原理
  • centos 7 部署ftp 基于匿名用户
  • Android 图片加载框架:Picasso vs Glide
  • LeetCode Hot 100 - 子串 | 560.和为K的子数组、239.滑动窗口最大值、76.最小覆盖子串
  • 算法设计:拒绝偷懒,追求卓越
  • 01、聊天与语言模型
  • go的hooks如何写
  • go-zero学习笔记
  • 河南大学数据库实验6