大家好啊,我是小象٩(๑òωó๑)۶
我的博客:Xiao Xiangζั͡ޓއއ
很高兴见到大家,希望能够和大家一起交流学习,共同进步。
这一节我们继续来学习操作符的相关知识,包括单目操作符,逗号表达式,下标访问操作符,函数调操作符,结构体的声明、定义、初始化,结构体成员访问操作符,结构体成员的直接访问和间接访问,操作符的优先级和结合性,表达式求值…
一、单目操作符
在C语言中,单目操作符(unary operator)是指只需要一个操作数的操作符。这些操作符通常用于对单个变量或表达式进行操作,如取反、递增、递减、获取地址、解引用、类型转换等。
单目操作符有这些:
!、++、–、&、*、+、-、~ 、sizeof、(类型)
单目操作符的特点是只有一个操作数,在单目操作符中只有 & 和 * 没有介绍,这2个操作符,我们放在学习指针的时候学习。
二、逗号表达式
exp1, exp2, exp3, …expN
逗号表达式,就是用逗号隔开的多个表达式。
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
看几个例子:
int main()
{
int a = 1;
int b = 2;
int c = (a > b, a = b + 10, a, b = a + 1);
printf("%d", c);
return 0;
}
很显然,我们能得到结果13
再看一个例子:
a = get_val();
count_val(a);
while (a > 0)
{
//业务处理
//...
a = get_val();
count_val(a);
}
这里这么写也是可以的,当是过程会显得冗余
我们可以这样改:
如果使⽤逗号表达式,改写:
while (a = get_val(), count_val(a), a>0)
{
//业务处理
}
三、下标访问[]、函数调用()
3.1 下标引用操作符
在 C 语言中,下标引用操作符 [] 用于访问数组元素或通过指针进行间接访问。
操作数:一个数组名 + 一个索引值(下标)
int arr[11];//创建数组
arr[10] = 11;//实⽤下标引⽤操作符。
注意:[ ]的两个操作数是arr和10。
3.2 函数调用操作符
C 语言中,函数调用操作符是一对圆括号 () ,它用于调用函数并传递参数(如果有)。
注意:接受一个或者多个操作数:第⼀个操作数是函数名,剩余的操作数就是传递给函数的参数。
举个例子:
#include<stdio.h>
int main()
{
printf("xiaofeixiang");
return 0;
}
这里括号的操作数是printf和xiaofeixiang
这里问个问题,像()这种函数调用操作符,最少有几个操作数?
答案:一个,就是函数名
四、结构成员访问操作符
4.1 结构体
在 C 语言中,结构体(struct)是一种户自定义的数据类型,它允许将不同类型的数据组合在一起,形成一个单一的实体。
比如说,我们描述一个学生的时候需要姓名、年龄、学号、身高、体重等;
这个时候如果使用单一的数据类型是远远不够用的。C语言为了解决这个问题,增加了结构体这种自定义的数据类型,让程序员可以自己创造适合的类型。
结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量,如:标量、数组、指针,甚至是其他结构体。
而我们常使用的数组则是一类元素的集合,和这里的结构体不一样。
4.1.1 结构的声明
我们来看一下:
struct tag
{
member-list;
}variable-list;
这里的关键字是struct,名字是tag,成员列表是member-list(这里是一个成员,也可以是多个成员),最后variable-list是变量列表(可有可无)
举个例子:我们来描述一个学生