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;
}
代码解析:
-
条件运算符:
- 比较
a
和b
的大小,返回较大的值。
- 比较
-
逗号运算符:
- 按顺序执行表达式,并返回最后一个表达式的值。
-
sizeof 运算符:
- 输出
int
类型和变量a
的大小。
- 输出
-
地址运算符:
- 输出变量
a
的内存地址。
- 输出变量
-
指针运算符:
- 输出指针
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. 扩展练习
- 修改程序,使用条件运算符判断一个数是否为偶数。
- 编写一个程序,使用逗号运算符计算多个表达式的值,并输出结果。
- 尝试使用
sizeof
运算符计算结构体的大小。