int a=5,*p1,**p2;p1=&a,p2=&p1 此时**p2的值是多少
时间: 2023-11-14 16:54:28 浏览: 46
`**p2` 的值应该是 `a` 的值,也就是 `5`。解释如下:
- `p1` 是一个指向 `a` 的指针,因此 `*p1` 的值是 `a` 的值,也就是 `5`。
- `p2` 是一个指向指针 `p1` 的指针,因此 `*p2` 的值是 `p1` 的值,也就是 `&a`。
- `**p2` 是指针 `p1` 所指向的 `a` 的值,也就是 `5`。
相关问题
char mycmp(char *p1, char *p2) while(*p1&&*p2 &&*p1==*p2) p1++,p2++; return *p1-*p2_; }
这是一个比较两个字符串的函数,函数名为mycmp,接收两个char类型的指针p1和p2作为参数。函数中使用while循环比较两个指针所指向的字符是否相等,如果相等则继续比较下一个字符,直到其中一个指针指向了字符串的结尾或者两个指针所指向的字符不相等为止。最后返回两个指针所指向的字符的ASCII码之差。需要注意的是,在函数中返回值应该是int类型而不是char类型。
```c
int mycmp(char *p1, char *p2){
while(*p1 && *p2 && *p1 == *p2){
p1++;
p2++;
}
return *p1 - *p2;
}
```
c语言*p=*p1*(*p2)是什么意思
根据提供的引用内容,`*p` 表示指针 `p` 所指向的内存地址中存储的值,`*p1` 和 `*p2` 分别表示指针 `p1` 和 `p2` 所指向的内存地址中存储的值。因此,`*p = *p1 * (*p2)` 的意思是将指针 `p` 所指向的内存地址中存储的值设置为指针 `p1` 所指向的内存地址中存储的值与指针 `p2` 所指向的内存地址中存储的值的乘积。
下面是一个示例代码:
```c
#include <stdio.h>
int main() {
int a = 2;
int b = 3;
int c;
int *p = &c;
*p = a * b;
printf("%d\n", *p); // 输出:6
return 0;
}
```