繁体   English   中英

如何从char **获取char *

[英]How to get char* from char**

我明白&用于引用对象的地址,所以&char* = char** 有没有反过来这样我可以从char**获得char*

所以我有:

char** str; //assigned to and memory allocated somewhere

printf ("%s", str); //here I want to print the string.

我该怎么做呢?

您可以使用取消引用运算符

解引用运算符对指针变量进行操作,并返回与指针地址处的值等效的l值。 这称为“解除引用”指针。

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*)* )所以你可以使用*

另一种方法可能是使用operator [] ,即用于访问数组的那个。 *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) );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM