我知道 & 被用来引用对象的地址,所以 &char* = char**
。有没有办法反过来,从 char**
得到 char*
?
所以我有:
char** str; //assigned to and memory allocated somewhere
printf ("%s", str); //here I want to print the string.
我该如何做到这一点?
char** str; //assigned to and memory allocated somewhere
printf ("%s", *str); //here I want to print the string.
str
的引用:print ("%s", *str); /* assuming *str is null-terminated */
T
的对象的指针T*
,并且想要获取类型为T
的对象T
,则可以使用运算符*
。它返回指针所指向的对象。char*
的对象的指针(即(char*)*
),因此可以使用*
。[]
,用于访问数组。 *s
等于s[0]
,而s[n]
等于*(s+n)
。char** s
是一个char*
数组,则使用printf("%s", *str)
只会打印第一个元素。在这种情况下,如果您使用[]
,则更容易阅读:for( i = 0; i < N; ++ i ) print( "%s\n", str[i] );
for( i = 0; i < N; ++ i ) print( "%s\n", *(str+i) );