【初识C语言】操作符

 

1、算术操作符

         +     -     *    /    %                                 

(1) 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。

(2)% 操作符的两个操作数必须为整数。返回的是整除之后的余数。

2、移位操作符(二进制的计算和存储)

       >>     <<                                                  

3、位操作符

       &     ^    |                                                  

& :按位与

^  :按位异或

|   :按位或

4、赋值操作符

       =   +=   -=   *=   /=   %=  &=  |=   >>=   <<=  

a=10;其中“=”就是赋值操作符

a+=5就相当于a=a+5

5、单目操作符(只有一个操作数的操作符)

       !   -     +    &   sizeof   ~   --   ++   *    (类型)                                     

  (1)!  :逻辑反操作

      //c语言中的真假

     0表示假,非0表示真。

     a=5   !a=0

     a=0    !a=1//语法规定,假变成真用1表示真

  (2)+   -:正负值

  (3)&:取地址

(4)sizeof:操作数的类型长度(以字节为单位)

sizeof是操作符,不是函数!

#include<stdio.h>
int main()
{
     int a=10;

     printf("%d",sizeof(a));//sizeof(a)也可以写成sizeof a,变量括号可以省略,但不建议省略
     printf("%d",sizeof(int));//类型名括号不能省略

     return 0;
}

sizeof也可以计算数组的大小

int main()
{
     int arr[10]={0};
     printf("%d\n",sizeof(arr));//40,计算的是数组的总大小,单位是字节
     printf("%d\n",sizeof(arr[0]));//4,计算的是数组第一个元素的大小
     printf("%d\n",sizeof(arr)/sizeof(arr[0]));//10,计算的是数组元素的个数

     return 0;
}

sizeof与strlen

a、sizeof是操作符,它只关注占据了多大内存空间,不关注内存中存放的数据,返回值的单位是字节。

b、strlen是库函数,是求字符串长度的,它关注字符串中是否有“\0”,统计\0之前出现的所有字符的个数。

int main()
{
    char arr1[]="bym";
    char arr2[]={'b','y','m'};
    printf("%d\n",strlen(arr1));//3
    printf("%d\n",strlen(arr2));//随机值
    printf("%d\n",sizeof(arr1));//4,包括\0
    printf("%d\n",sizeof(arr2));//3

    return 0;
}

(5)~:对一个数的二进制按位取反

(6)++   --:

前置++,先++,后使用

后置++,先使用,后++

int main()
{
     int a=10;
     int b=++a;//a=a+1,b=a>>a=11,b=11
     
     int c=10;
     int d=c++;//d=c,c=c+1>>c=11,d=10
      
     printf("%d %d %d %d",a,b,c,d);
     return 0;
}

(7)*:间接访问操作符

(8)(类型)强制转换类型

int main()
{
     int a=(int)3.14;
     printf("%d\n",a);//结果是3!
     
     return 0;
}

7、关系操作符

         >    >=   <   <=   !=   ==                

=   :赋值

==:判断相等

8、逻辑操作符

&&:逻辑与

||:逻辑或

9、三目操作符

     exp1?exp2:exp3                          

10、逗号表达式

     exp1,exp2,exp3,……               

int main()
{
	int a = 5;
	int b = 8;
	int c = 4;
	int d = (a = b - 3, b = a + c, c = a - b, a = c + 2);
	//a=8-3=5;b=5+4=9;c=5-9=-4;a=-4+2=-2;
	printf("%d\n", d);
	return 0;
}

逗号表达式会从左向右依次计算,但是整个表达式的结果是最后一个表达是的结果

11、下标引用、函数调用和结构成员

        [ ]     ( )     .     ->                              

(1)[ ]:下标引用操作符

操作数:一个数组名+一个索引值

int arr[10];//创建数组
arr[0]=5;//[]的两个操作数是arr和0

(2)( ):函数调用操作符

接受一个或多个操作数:第一个操作数是函数名,剩余操作数就是传递给函数的参数

(3).    :结构体.成员名

(4)->  :结构体指针->成员名

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值