char c = 'A';char *p1 =&c; char**p =p1; 请问har **p =&p1 时候 **p1 数值等于c的数值
时间: 2024-05-15 09:10:28 浏览: 117
首先,char c = 'A';定义了一个字符型变量c,并将其赋值为'A',其ASCII码值为65。
然后,char *p1 =&c; 定义了一个字符型指针变量p1,其指向c的地址。
接着,char**p =p1; 将p1的地址赋值给了一个字符型指针变量p,也就是说,p指向了p1所指向的地址。
最后,如果执行char **p = &p1; 语句,由于p1是一个字符型指针变量,&p1表示其地址的地址,即一个字符型指针变量的地址,而p是一个字符型指针变量的指针变量,所以这条语句会出现类型不匹配的错误。
如果要求**p1的数值等于c的数值,则应该使用如下代码:
```
char c = 'A';
char *p1 = &c;
char **p = &p1;
printf("%c", **p); //输出A
```
相关问题
python中char**和har*有什么区别呀
在Python中,`char*`和`char**`这样的指针类型并不存在,因为Python的变量类型是动态的,不需要声明变量类型。
如果你想在Python中实现类似于C语言中的指针操作,可以使用`ctypes`模块,它提供了对C语言类型的支持,包括指针类型。
在C语言中,`char*`是一个指向字符数组或字符串的指针,它可以指向一个字符或字符串,也可以指向一个字符数组或字符串数组的首地址。而`char**`是一个指向指针的指针,它可以指向一个指针数组,每个指针又可以指向一个字符数组或字符串。
因此,`char*`和`char**`的区别在于,`char*`是一个一级指针,可以指向一个字符或字符串,也可以指向一个字符数组或字符串数组的首地址;而`char**`是一个二级指针,可以指向一个指针数组,每个指针又可以指向一个字符数组或字符串。
以下程序的输出结果是 。 #include <stdio.h> struct HAR {int x,y; struct HAR *p; } h[2]; void main() { h[0].x=1;h[0].y=2; h[1].x=3;h[1].y=4; h[0].p=&h[1]; h[1].p=&h[0]; printf("%d %d\n",h[0].p->x,h[1].p->y); } A. 1 2 B. 2 3 C. 1 4 D. 3 2
C. 1 4。
解析:结构体 `HAR` 中包含两个 `int` 类型的成员变量 `x` 和 `y`,以及一个指向结构体 `HAR` 的指针 `p`。
在 `main` 函数中,首先给 `h[0]` 和 `h[1]` 分别赋值,然后将 `h[0].p` 指向 `h[1]`,将 `h[1].p` 指向 `h[0]`,形成了一个环形链表。
最后,使用 `printf` 输出 `h[0].p->x` 和 `h[1].p->y`。由于 `h[0].p` 指向 `h[1]`,而 `h[1]` 的 `y` 值为 `4`,因此输出结果为 `1 4`。
阅读全文