char *p与char(*p)
时间: 2023-08-18 09:07:34 浏览: 172
### 回答1:
char *p 表示 p 是一个指向 char 类型的指针,可以用来存储字符数组的首地址。
而 char (*p) 则表示 p 是一个指向函数的指针,这个函数返回 char 类型。通常这种形式的指针被用来指向一个字符处理函数或者字符数组排序函数等。
需要注意的是,这两个表达式之间只有一个小括号的差别,但其意义完全不同。
### 回答2:
char *p 与 char(*p) 都是关于指针的声明语法,但它们的含义和用法略有不同。
char *p 声明了一个指向字符型的指针变量 p。它表示 p 是一个指针变量,可以存储一个字符型变量的地址。可以通过 *p 操作符来访问指针指向的字符型变量。
而 char(*p) 声明了一个函数指针变量 p,该函数指针指向一个返回类型为 char 的函数。这里的括号是必须的,因为它表明 () 内的内容是一个函数指针。可以通过 (*p)() 的方式来调用函数指针指向的函数。
可以看出,char *p 和 char(*p) 主要是在关注点上的区别。char *p 更关注指针的类型(指向字符型变量的指针),而 char(*p) 更关注指针指向的内容的类型(指向返回类型为 char 的函数的指针)。
总结起来,char *p 是一个指向字符型变量的指针变量,而 char(*p) 是一个函数指针变量,指向一个返回类型为 char 的函数。
### 回答3:
char *p 是一个指针,指向一个字符型数据的地址。
而char(*p) 是一个字符型的变量,括号表示其为一个指针。
char *p 表示 p 是一个指针,可以通过 p 来访问一个或多个字符。
比如,可以用 char *p 来声明一个指向字符数组的指针:
```c++
char str[] = "Hello";
char *p = str;
```
这样,p 指向字符数组 "Hello" 的第一个字符 'H'。
而 char(*p) 表示 p 是一个指针,指向一个字符型的变量。
比如,可以用 char(*p) 来声明一个指向字符变量的指针:
```c++
char c = 'A';
char(*p) = &c;
```
这样,p 指向字符变量 'A'。
总结来说,char *p 是一个指向字符型数据的指针,而 char(*p) 是一个字符型指针,指向一个字符型变量。
阅读全文