马鞍山网站建设咨询电,张家港网站建设培训,深圳网站见,腾讯企点多少钱一个上一篇链接#xff1a;C语言#xff1a;详解操作符#xff08;上#xff09;摘要#xff1a; 在上篇文章中#xff0c;我们已经讲过位操作符等涉及二进制的操作符#xff0c;这些有助于帮助我们后期理解数据如何在计算机中运算并存储#xff0c;接下来本篇将更多的讲述…上一篇链接C语言详解操作符上摘要 在上篇文章中我们已经讲过位操作符等涉及二进制的操作符这些有助于帮助我们后期理解数据如何在计算机中运算并存储接下来本篇将更多的讲述一些C语言中经常要使用到的操作符。 一、单目操作符
单目操作符是指只有一个操作数的操作符主要有 、、–、、*、、-、~ 、sizeof、(类型) 单目操作符这些内容在我之前一篇文章有提过算数操作符和算数操作数
二、逗号操作符
逗号操作符还是很非常有意思的因为在日常学习中经常会有人不去重视就容易出一些笑话我们先来看个例子
int a 1;
int b 2;
int c (ab, ab10, a, ba1);//逗号表达式
c是多少此时C值是多少是12还是1或者是3 答案是都不是是13。此时肯定会有人不明白了其实这就跟逗号表达式的性质有关 逗号表达式从左向右依次执⾏整个表达式的结果是最后⼀个表达式的结果。 基于此性质所以上面那个表达式实际上要一步一步执行按照下图这样的顺序一步一步执行并得到最终结果。 逗号操作符其他用法都是基于性质的只要记住要先按步骤进行就行。
三、下标引用操作符[ ]、函数调用操作符( )
1、下标引用操作符[ ] 下标引用操作符是双目操作符它有两个操作数一般用来表示数组时会用到人们往往会有一个误区认为字母应该在外面数字在里面实际上是无所谓的 例如
int arr[9];
int 9[arr];上面这两个其实是一样的下标引用其实是类似于加减法之类的两个操作数顺序位置并不重要。 在学到指针这些内容后下标引用有了更多的用法我个人觉得它还有解引用的用法。
2、函数调用操作符 函数调用操作符前面的是函数名这个可以需要自己命名里面的是要传的参数 函数调用操作符比较容易理解可以看一下下面的例子
#include stdio.h
void test1()
{printf(hehe\n);
}
void test2(const char *str)
{printf(%s\n, str);
}
int main()
{test1(); //这⾥的()就是作为函数调⽤操作符。test2(hello bit.);//这⾥的()就是函数调⽤操作符。return 0;
}四、结构体成员访问操作符
C语言中虽然已经给出许多变量类型例如int、float、short等但是有些变量还是无法描述例如如果要描述一个学生你需要知道他的名字、学号、身高、体重等等这就需要其他类型了C语言通过结构体给我们自己创建类型的方式来满足各种需要。
1、结构体的声明
struct tag
{member-list;
}variable-list;描述上面说的那个学生变量
struct Stu
{char name[20];//名字int age;//年龄char sex[5];//性别char id[20];//学号
}; //分号不能丢2、结构体的定义和初始化 定义的时候可以在主函数外面也可以在里面 struct Point
{int x;int y;
}p1; //声明类型的同时定义变量p1
struct Point p2; //定义结构体变量p2结构体变量初始化 int main
{struct Stu s{zhangsan,18,nan,34285967};}看看结构体中定义了哪些变量一个一个赋值 结构体嵌套 struct Node
{int data;struct Point p;struct Node* next;
}n1 {10, {4,5}, NULL}; //结构体嵌套初始化
struct Node n2 {20, {5, 6}, NULL};//结构体嵌套初始化3、结构体成员直接访问 结构体成员直接访问是通过操作符( . )来实现的 方式结构体变量.成员名 例如
struct Student
{char name[20];int age;int high;
}p { zhangsan ,18,150 };
int main()
{printf(%s %d %d, p.name, p.age, p.high);return 0;
}4、结构体成员间接访问 结构体成员的间接访问是通过指向结构体的指针来实现的。 #include stdio.h
#include string.h
struct Stu
{char name[15];//名字int age; //年龄
};
void print_stu(struct Stu s)
{printf(%s %d\n, s.name, s.age);
}
void set_stu(struct Stu* ps)
{strcpy(ps-name, 李四);ps-age 28;
}
int main()
{struct Stu s { 张三, 20 };print_stu(s);set_stu(s);print_stu(s);return 0;
}五、操作符的优先级和结合性
1、操作符的优先级
操作符的优先级看下面这个表格就行
2、操作符的结合性
操作符的结合性一般为左结合性和右结合性其实结合性还是有些意思的例如
int c1;
int b0;
b(c)(c)(c);此处c的值就是有歧义的所以要尽量避免写出这样的表达式。结语 C语言操作符的内容到这里也是初步结束了以后会根据需求进行补充鉴于本人能力有限欢迎大家指出错误和意见。创作不易还请一键三连。