char* 和char** 在c中区别是什么
下面代码:
#include <stdio.h>
#include <string.h>
void printLastLetter(char **str)
{
printf("%c\n",*(*str + strlen(*str) - 1));
printf("%c\n",**(str + strlen(*str) - 1));
}
int main()
{
char *str = "1234556";
printLastLetter(&str);
return 1;
}
char*的类型是:“指向一个char类型的指针”
char**的类型是:“指向一个char类型的指针的指针”
定义我明白,对于指针的指针有时候很迷惑。结合上面的例子能给帮忙详细解释一下这两者的区别和应用吗?
天天都爱你
12 years, 10 months ago
Answers
char*一级指针相当于直接寻址,本身保存就是地址,而char**相当于间接寻址,保存的是地址的地址,读取真实地址时需要先取一次值,就像例子当中的*str操作。二级指针常常用于下面两情况:
一、需要传递一级指针的数组时,如
二、需要对传入的一级指针进行修改时,如:
rpgonly
answered 12 years, 10 months ago