C语言操作符笔记

算术操作符

+    -     *    /    %

注意:1.对于  /  操作符说如果两个操作数都是整数得到的仍然是整数(得到的是 “商” ),要想得到浮点数,则两个操作数中必须               有一个是浮点数。

           2.对于 % 操作符来说两个操作数必须都是整数(得到的是 “余” 数)。

移位操作符

>> 右移操作符

<< 左移操作符

右移操作符分为:

1.逻辑右移              右边舍弃,左边补0

2.算术右移             右边舍弃,左边补原符号位

左移操作符同逻辑右移;

位操作符

&                  //按位与              (二进制中对应位有0,则结果为0)

|                   //按位或              (二进制中对应位有1,则结果为1)

^                  //按位异或           (二进制中对应位相同则为0,不同则为1)

注意:位操作符的两个操作数都必须是整数

特殊的,通过^操作符可以实现两个整数互换

a = a^b;

b = a^b;

a = a^b;

赋值操作符

 =                  注意区别 =  和 ==的区别

*=                 Example:a*=2      a = a*2

/=                                

+=

-=

%=                                a%=2     a = a%2

>>=

<<=

单目操作符

++   --    +(正)    -(负)    ~    *    &(取地址)    !    sizeof

单目操作符注意它的优先级

前置++a和后置a++的区别:前置++a表示a先加1,再使用,后置a++表示a先使用,再加1;

同理--也是如此

sizeof是操作符不是函数,它可以用来求一个数的字节大小,也可以用来求一个类型的大小

int a = 0;

sizeof(a);

sizeof( int );

sizeof可以用来求数组元素的个数

关系操作符

>=

<=

>

<

!=       用来测试两个数“不相等”

==      用来测试两个数“相等”

注意在书写代码的时候不要将==误写成=,所导致的错误

逻辑操作符

&&                表达式1&&表达式2     表达式1和表达式2都成立,结果才为真       注意:如果表达式1为假,表达式2将不会再计算

||                   表达式1 || 表达式2      表达式1或表达式2成立,结果都为真           注意:如果表达式1为真,表达式2将不会再计算

关于注意的具体实例请参考https://blog.csdn.net/weixin_44915811/article/details/90417381

条件操作符

表达式1  表达式2  表达式3            (三目操作符)

使用规则:计算表达式1,如果为真,以表达式2的结果作为整体的结果,表达式2为假,以表达式3的结果作为整体的结果

Example:        a>b ? a : b

逗号表达式

表达式1,表达式2,表达式3,……表达式n;

逗号表达式是好多个表达式用逗号隔开,而计算规则是:从表达式1计算到表达式n,以表达式n的结果作为整个表达式的结果。

下标引用操作符

 [ ]

操作数:数组名+一个整型表达式或值

int arr[10] = {0};

arr,10为 [ ]的两个操作数      注意 : [ ]内不能是变量,只能是整型常量或者整形表达式

函数调用

( )

函数调用操作符的操作数是:  函数名和传递的参数

char arr[] = "hello world";

int ret = MyStrlen(arr);                   对于函数调用操作符来说,函数名和参数都是他的操作数;缺少函数名变成了(arr)显然不正确,缺少                                                       参数MyStrlen()也是不正确的    函数本身不需要参数除外

访问结构体成员

结构体 . 成员名 

结构体指针 -> 成员名

struct Stu

{

     char name[20];

     char sex[5];

};

struct Stu s;

struct Stu* ps = &s;

struct Stu s.name = "张三";

ps -> sex = " 男";

发布了20 篇原创文章 · 获赞 9 · 访问量 909

猜你喜欢

转载自blog.csdn.net/weixin_44915811/article/details/99844078