1.什么是指针运算符指针上运作的运算符,取地址或指向目标类型
这里&是取地址运算符,*是 。书上叫做“间接运算符” 。
&a的运算结2113果是一个指针,指针的类型是a的类型加个*,指针所指向的5261类型是a的类型,指针所指向的地址4102嘛,那就是a的地址 。
*p的运算结果就五花八门了 。总之*p的结果是p所指向的东西,这个东西有这些特点:它的类型是p指向的类型,它所占用的地址是p所指向的地址 。
只要理解指针就是地址就足够了,指针变量就是在内存里存放另一个变量的逻辑地址的变量,就像你家房子的门牌号一样,标识着一个空间,里面1653放着一个变量的值(一个由0,1组成的数字,物理上由几个用高低电压区分的二极管实现).指针的指针就是地址的地址,就是你的指针变量所占专据的逻辑存储单元的标识.就像是另一座房子他里面装的也是一个由0,1组成的数字,但这个数字是你家房子的门牌号,进了这座房子,就能属找到你家的地址,然后就能找到你家,继而找到你,看看你穿了什么颜色的内裤.
2.C语言 指向结构体成员运算符指向结构体成员运算符 : (->) 从外部看是包含了一个解指针(*)所以要对指针进行操作
例如:
typedef struct
{
int data[20];
int length;
}Sqlist;
Sqlist
【指向运算符怎么写】*L;
L->lenth;
//同样是得到L中length的值
结构体成员运算符 : ( . )直接调用结构体中的某个成员
例如:
typedef struct
{
int data[20];
int length;
}Sqlist;
Sqlist L;
L.length; //直接调用L中length的值
L.data[3];
扩展资料:
结构体成员的点运算符(.)和箭头运算符(->)的区别:
相同点:两个都是二元操作符,其右操作符是成员的名称 。
不同点:点操作符左边的操作数是一个“结果为结构”的表达式;箭头操作符左边的操作数是一个指向结构的指针 。
如果一个函数的传入参数是结构体,且需要该结构体作为返回值的时候,必须采用指针传递的方式,其中对结构体赋值必须使用箭头运算符 。
参考资料:
搜狗百科-->
菜鸟教程-C++ 运算符
文章插图