操作符复习 看看你学会了吗?复习必备

sizeof的应用

判断输出值:

#include<stdio.h>
void test(int arr[])
{
    printf("%d\n", sizeof arr);
}
void try(char ch[])
{
    printf("%d",sizeof ch);
}
    int main()
   {
        int arr[10] = { 0 };
        char ch[10] = { 0 };
        //sizeof是单目操作符,可以不加()而使用,判断类型所占字节大小就不行
        printf("%d\n", sizeof arr);
        printf("%d\n", sizeof ch);
        test(arr);
        try(ch);
    return 0;
   }
  1. sizeof 操作符:在 main 函数中,sizeof arr 和 sizeof ch 会分别返回整个 arr 数组和 ch 数组的大小(以字节为单位)。由于 arr 是 int 类型的数组,每个 int 通常占用 4 字节(这取决于编译器和平台),所以 sizeof arr 会是 4 * 10 = 40。同理,ch 是 char 类型的数组,每个 char 占用 1 字节,所以 sizeof ch 会是 1 * 10 = 10

  2. test 函数:在这个函数中,arr 参数是一个指向 int 的指针(尽管在函数声明中它是数组形式,但在函数内部它退化为指针)。因此,sizeof arr 在这里实际上是返回指针的大小,而不是数组的大小。在大多数现代系统上,指针的大小是 4 字节(32位系统)或 8 字节(64位系统)。

输出结果 40 10 8 8

比较字符串是否相同

使用函数:

#include <string.h> 
if (strcmp(str1, str3) == 0) 

来判断是否相等

逻辑操作符

易错点:

i=a++||++b||c++;
//b的值是否+1了?
  1. 操作符优先级:逻辑或(||)操作符的优先级低于前缀递增(++x)和后缀递增(x++),但在这个表达式中,由于递增操作符直接作用于变量,而逻辑或操作符用于比较这些递增操作的结果,所以递增操作会首先发生(尽管对于后缀递增来说,递增的“可见性”会延迟).

  2. 逻辑或的短路行为:逻辑或操作符(||)具有短路行为,即如果第一个操作数(在这里是a++的结果)为真(非零),则不会计算第二个和第三个操作数(++bc++)。这是因为逻辑或只需要一个真值就可以确定整个表达式的真值。同理&&也是这样的。

    b的值没有+1

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值