c语言指向运算符
❶ c语言中运算符有哪几种,优先级顺序是怎样
C语言中,运算符除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符。
运算符的运算优先级共分为15 级,1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。
一级运算符:标识,常量,字符串文字量,优先级提升表达式最优先执行。
二级运算符:数组下标运算(expression)、函数调用(argument-expression-list)、成员访问(identifier、-> identifier)、后缀自增(i++)、后缀自减(i--)、复合初始化(initializer-list)。
三级运算符:前缀自增(++i)、前缀自减(--i)、单目转型表式式(取地址& ,提领 * , 正号+ ,负号-、位反~ 逻辑否!)、求类型长度(sizeof unary-expression)。
四级运算符:强制表达式成为type-name指定的类型( type-name ) cast-expression。
五级运算符:“ * ” 乘法运算符。
六级运算符:“ + ”加法运算符。
七级运算符:<< 左移运算符;>> 右移运算符。
八级运算符:<、<=、>、>=关系运算符。
九级运算符:“ == ”等于运算符;“ != ”不等于运算符。
十级运算符:“ & ”按位与运算符。
十一级运算符:“ ∧ ”按位异或运算符。
十二级运算符:“ | ”按位或运算符。
十三级运算符:“&&”逻辑与运算符。
十四级运算符:“ || ”逻辑或运算符。
十五级运算符:? :条件运算符。
(1)c语言指向运算符扩展阅读
C语言中各运算符的结合性:
1、左结合性(自左至右):
例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。这种自左至右的结合方向就称为“左结合性”。
2、右结合性(自右至左)
自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。
❷ C语言运算符中箭头是什么意思啊
->在C语言中,叫做指向结构体成员运算符,用处是使用一个指向结构体或对象的指针访问其内成员。
一个指针当用来指向一个结构体、对象时,称之为结构体指针或对象指针。结构体指针或对象指针中的值是所指向的结构体或对象的首地址。通过结构体指针或对象指针即可访问该结构体或对象。
指向结构体成员运算符需要用到结构体关键字struct和C++类关键字class。结构体指针和对象指针定义的形式如下:
1、struct结构体类型名*指针名;
2、struct结构体类型名*指针名=&一个结构体的名字。
(2)c语言指向运算符扩展阅读:
C语言中访问结构体成员时 点 . 和 箭头 -> 的区别
点(.)是用于结构体变量访问成员,箭头(->)是用于结构体指针访问成员。
相同点:两个都是二元操作符,其右操作符是成员的名称。
不同点:点操作符左边的操作数是一个“结果为结构”的表达式; 箭头操作符左边的操作数是一个指向结构的指针。
❸ C语言的指针运算符号
*称为指针运算符(单目运算符),也称取内容运算符。是用来表示指针变量和它所指向的变量直接的联系。如果已经定义i_pointer为指针变量,则(*i_pointer)是i_pointer所指向的变量。其实*i_pointer也是一个变量,它和变量i是同一回事。下面两个语句作用相同。 1、i=3; 2、*i_pointer=3; 第二个语句的含义是将3赋给指针变量i_pointer所指向的变量。 取地址运算符&,可以取得变量在内存中的地址。例如: pointer_1=&a; 表示把变量a的地址赋给pointer_1 * (*(a+1)+j)表示1行j列元素a[1][j]的值。 *(a+1)+j表示1行2列元素a[1][j]的地址。 这个没有为什么,就是规定的吧!
❹ C语言,指向结构体成员运算符是什么意思
结构体主要成员运算符有"."和" -"多用于修改结构成员的值。以下是具体的例子struct date{ int year; int month; int day;};int main(int argc, char* argv[]){ char end; struct date today; struct date* pdate; pdate=&today; today.year=2011; today.month=2; today.day=1; printf("year = %d ",today.year); printf("month = %d ",today.month); printf("day = %d ",today.day); printf("year = %d ",pdate-year); printf("month = %d ",pdate-month); printf("day = %d ",pdate-day);}
❺ c语言指向运算符问题s->s<a[i].s 自己指向自己
名字一样,但内容不同;
s->s 的意思是结构s中的变量s.
所以在程序中尽量给变量设置不同的名字,不然头疼不仅是自己,还有别人.
❻ c语言运算符号的表示方法
1 算术运算符
用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
2.关系运算符
用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)
、小于等于(<=)和不等于(!=)六种。
3.逻辑运算符
用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
4.位操作运算符
参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
5.赋值运算符
用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
6.条件运算符
这是一个三目运算符,用于条件求值(?:)。
7.逗号运算符
用于把若干表达式组合成一个表达式(,)。
8.指针运算符
用于取内容(*)和取地址(&)二种运算。
9.求字节数运算符
用于计算数据类型所占的字节数(sizeof)。
10.特殊运算符
有括号(),下标[],成员(→,.)等几种。
优先级1级 结合方向 左结合(自左至右)
( ) 圆括号
[ ]下标运算符
-> 指向结构体成员运算符
. 结构体成员运算符(请注意它是一个实心圆点)
优先级2级 结合方向 右结合(自右至左)单目运算符
! 逻辑非运算符
~ 按位取反运算符
++ 自增运算符
-- 自减运算符
-负号运算符
(类型) 类型转换运算符
* 指针运算符
& 地址与运算符
sizeof 长度运算符
优先级3级 结合方向 左结合 双目运算符
* 乘法运算符
/ 除法运算符
% 取余运算符
优先级4级 结合方向 左结合 双目运算符
+ 加法运算符
- 减法运算符
优先级5级 结合方向 左结合 双目运算符
<< 左移运算符
>> 右移运算符
优先级6级 结合方向 左结合 双目运算符
<、<=、>、>= 关系运算符
优先级7级 结合方向 左结合 双目运算符
== 等于运算符 (判断)
!= 不等于运算符(判断)
优先级8级 结合方向 左结合 双目运算符
& 按位与运算符
优先级9级 结合方向 左结合 双目运算符
^ 按位异或运算符
优先级10级 结合方向 左结合 双目运算符
| 按位或运算符 举例:0xfe|0xef 即为1111 1110 与1110 1111按位或运算则答案为:1111 1111 即0xff。
优先级11级 结合方向 左结合 双目运算符
&& 逻辑与运算符
优先级12级 结合方向 左结合 双目运算符
|| 逻辑或运算符
优先级13级 结合方向 右结合 三目运算符
? : 条件运算符
优先级14级 结合方向 右结合 双目运算符
= 赋值运算符
+ = 加后赋值运算符 如s+=1表示s=s+1
- = 减后赋值运算符 如s-=1表示s=s-1
* = 乘后赋值运算符
/ = 除后赋值运算符
% = 取模后赋值运算符
< <= 左移后赋值运算符
>>=右移后赋值运算符
&= 按位与后赋值运算符
^=按位异或后赋值运算符
|= 按位或后赋值运算符
优先级15级 结合方向 左结合
, 逗号运算符
❼ C语言的运算符的优先级是什么
1、最高级:出现同级别运算符时的结合方向是从左往右(下面级别没写结合顺序时,默认是从左往右)。
( )圆括号
[ ]下标运算符号
->指向结构体成员运算符
.结构体成员运算符
❽ c语言中有哪些运算符,各有什么功能
1级优先级
左结合
()
圆括号
[]
下标运算符
->
指向结构体成员运算符
.
结构体成员运算符
++
后缀增量运算符
--
后缀增量运算符
2级优先级
右结合
!
逻辑非运算符
~
按位取反运算符
++
前缀增量运算符
--
前缀增量运算符
-
负号运算符
(类型)
类型转换运算符
*
指针运算符
&
地址与运算符
sizeof
长度运算符
3级优先级
左结合
*
乘法运算符
/
除法运算符
%
取余运算符
4级优先级
左结合
+
加法运算符
-
减法运算符
5级优先级
左结合
<<
左移运算符
>>
右移运算符
6级优先级
左结合
<、<=、>、>=
关系运算符
7级优先级
左结合
==
等于运算符
!=
不等于运算符
8级优先级
左结合
&
按位与运算符
9级优先级
左结合
^
按位异或运算符
10级优先级
左结合
|
按位或运算符
11级优先级
左结合
&&
逻辑与运算符
12级优先级
左结合
||
逻辑或运算符
13级优先级
右结合
?
:
条件运算符
14级优先级
右结合
=
+=
-=
*=
/=
%=
&=
^=
|=
<<=
>>=
全为赋值运算符
15级优先级
左结合
,
逗号运算符