乱码zzz 发表于 2020-3-28 15:49:53

指针的指针

#include <stdio.h>
int main(){
        char *array = {"fishc","five","star","good","wow"};
        //char *p = array;
        char *(*p) = &array;
        int i,j;
       
       
        for (i = 0; i < 5; i++){
                for(j = 0; (*p) != '\0'; j++){
                        printf("%c ", (*p));
                }
                printf("\n");
        }

想知道char *(*p) = &array;为什么不能写成 char*p = array
两者不是一个意思吗

BngThea 发表于 2020-3-28 16:02:31

因为array数组的元素本身就是字符串

乱码zzz 发表于 2020-3-28 16:48:38

BngThea 发表于 2020-3-28 16:02
因为array数组的元素本身就是字符串

那写成char*p = array有什么问题呀? 字符型指针对应字符

BngThea 发表于 2020-3-28 16:57:05

乱码zzz 发表于 2020-3-28 16:48
那写成char*p = array有什么问题呀? 字符型指针对应字符

那能写p去进行索引吗?

4goodworld 发表于 2020-3-28 18:38:45

乱码zzz 发表于 2020-3-28 16:48
那写成char*p = array有什么问题呀? 字符型指针对应字符

array
这个返回的类型是char而不是char*类型
类型不相同,你觉得如何赋值?

召唤师 发表于 2020-3-30 23:12:26

类型不同,之前我也有点晕,可以看一下我的帖子。

乱码zzz 发表于 2020-3-31 09:28:44

召唤师 发表于 2020-3-30 23:12
类型不同,之前我也有点晕,可以看一下我的帖子。

好√

Draem 发表于 2020-3-31 15:52:36

BngThea 发表于 2020-3-28 16:57
那能写p去进行索引吗?

char *(*p) = array;
把取址操作符省略, 这样的话行不行,数组名字代表数组内存中的地址
页: [1]
查看完整版本: 指针的指针