操作符详解1(一)+https://developer.aliyun.com/article/1520077?spm=a2c6h.13148508.setting.14.5a334f0eAO0FJd
练习1: 不能创建临时变量(第三个变量),实现两个数的交换
当创造临时变量时:
或者:
但这种写法的缺陷是:a和b如果非常大,求和后的结果超过了整型的最大值
使用按位异或操作符:
异或操作符的特点: a^a=0 0^a=a
练习2: 求一个整数存储在内存中的二进制中1的个数
思路:
方法1:
方法2:
五、逗号表达式
逗号表达式,就是用逗号隔开的多个表达式。
逗号表达式,从左向右依次执行。 整个表达式的结果是最后一个表达式的结果。
举例:
结果为:
六、下标访问[ ],函数调用( )
1.下标引用操作符[ ]
操作数:一个数组名+一个索引值
2.函数调用操作符( )
接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
七、结构成员访问操作符
1.结构体
C语言已经提供了内置类型,如:char、short、int、long、float、double等,但是只有这些内置类型还是不够的,假设我想描述学生,描述一本书,这时单一的内置类型是不行的。描述一个学生需要名字、年龄、学号、身高、体重等;描述一本书需要作者、出版社、定价等。C语言为了解决这个问题,增加了结构体这种自定义的数据类型,让程序员可以自己创造适合的类型。
结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量,如:标量、数组、指针,甚至是其他结构体。
2.结构的声明
例如:描述一个学生
3.结构体变量的定义和初始化
变量的定义:
初始化:
嵌套初始化:
八、结构成员访问操作符
1.结构体成员的直接访问
结构体成员的直接访问是通过点操作符(.)访问的,点操作符接受两个操作数。
使用方式:结构体变量.成员名
例如 : p.x p.y
如下所示:
2.结构体成员的间接访问
有时候我们得到的不是一个结构体变量,而是得到了一个指向结构体的指针。
使用方式:结构体指针->成员名
如下所示: