分析(*p)++,*p++,*(p--),(*p)--,--(*p),*(--p)不同的含义
时间: 2023-08-16 08:09:25 浏览: 69
这些表达式都涉及到指针和运算符,具体含义如下:
1. (*p)++:取出指针p所指向的变量的值,并将该变量的值加1。
2. *p++:先取出指针p所指向的变量的值,然后将p自增1,指向下一个变量。
3. *(p--):先将指针p自减1,指向前一个变量,然后取出该变量的值。
4. (*p)--:取出指针p所指向的变量的值,并将该变量的值减1。
5. --(*p):先将指针p所指向的变量的值减1,然后返回该变量的值。
6. *(--p):先将指针p自减1,指向前一个变量,然后取出该变量的值。
需要注意的是,这些表达式的含义与具体的数据类型和指针类型有关,因此在使用时需要特别注意。
相关问题
c语言中*++p->x
在C语言中,*p->x 是一种语法结构,表示对一个指针p指向的结构体或联合体的成员x进行访问。
首先,p必须是一个指针类型变量,可以是一个指向结构体或联合体的指针。通过指针p,我们可以访问它所指向的内存空间。
接下来,-> 是一种特殊的运算符,也被称为指向运算符。它的作用是用于访问指针所指向的结构体或联合体的成员。
最后,x是结构体或联合体的一个成员名。通过*p->x,我们可以获取到指针p所指向的结构体或联合体的成员x的值。
举个例子,假设有一个结构体定义如下:
```
struct student {
int id;
char name[20];
float score;
};
```
然后我们定义一个指向该结构体的指针p,并给其赋值:
```
struct student stu = {1, "Tom", 89.5};
struct student *p = &stu;
```
现在,我们可以通过*p->id访问指针p所指向的结构体stu的id成员,通过*p->name访问stu的name成员,通过*p->score访问stu的score成员。
总结起来,*p->x 是一种语法结构,用于访问指针p所指向的结构体或联合体的成员x的值。它将指针和成员名结合在一起,提供了一种便捷的方式来访问结构体或联合体的成员。
分析(*p)++,*p++,*(p--),*p--,(*p)--,--(*p),*(--p),*(++p)不同的含义
这些表达式都涉及到指针和运算符,具体含义如下:
1. (*p)++:取出指针p所指向的变量的值,并将该变量的值加1。
2. *p++:先取出指针p所指向的变量的值,然后将p自增1,指向下一个变量。
3. *(p--):先将指针p自减1,指向前一个变量,然后取出该变量的值。
4. *p--:先取出指针p所指向的变量的值,然后将p自减1,指向前一个变量。
5. (*p)--:取出指针p所指向的变量的值,并将该变量的值减1。
6. --(*p):先将指针p所指向的变量的值减1,然后返回该变量的值。
7. *(--p):先将指针p自减1,指向前一个变量,然后取出该变量的值。
8. *(++p):先将指针p自增1,指向下一个变量,然后取出该变量的值。
需要注意的是,这些表达式的含义与具体的数据类型和指针类型有关,因此在使用时需要特别注意。