注册 登录
编程论坛 C语言论坛

不懂就问,关于二级指针和一级指针的问题。

zzwent 发布于 2020-03-07 17:13, 1653 次点击
程序代码:
#include<stdio.h>
#include<stdlib.h>
void change(char **str)
    *str = "tasklist";//这里怎么理解,为什么是用*str,而不是用**str??
    printf("%s", *str);
}

void main()
{
    char str1[20] = "calc";
    char *p = str1;
    change(&p);
    system(p);

    getch();
}
3 回复
#2
forever742020-03-07 17:24
因为一般字符串常见对应的类型是char *,
那么一个char **类型的变量str 怎么凑出来char * 呢?
当然是*str了,
**str是char类型的,表示单个字符,就不是字符串了。

当然这是纯粹从类型的角度说的,接下来你仍然需要进一步深入理解它。
#3
zzwent2020-03-07 19:10
回复 2楼 forever74
谢谢,我是自学编程的,有很多不懂的地方,基础仍要继续努力学习。。
#4
吹水佬2020-03-08 06:27
从change函数的入口就可以看出
**str是&p, *str就是p了。
1