APP_NAME=#####
APP_ENV=local
APP_KEY=base64:IGN5qlcuICOZ3LAeIMPh+DXtTPA/51P2tCIRW1DmDY4=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=####
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME=dbuser
DB_PASSWORD=pass
答案 0 :(得分:1)
你的主要功能与你的功能不同,该功能有一个额外的&
!
主要是ptr_1
是一个void*
,它指向静态"Hello world"
数组,就像str_1
一样。因此,转换为char*
是正确的。
在func
中,s
是void*
,指向str
。 s
指向str
,指向"Hello world"
。因此,转换为char**
是正确的。
答案 1 :(得分:0)
在main
中,str
是指向char
(C字符串)的指针,ptr_1
是指向某事物的指针。因此,将ptr_1
转换回指向char char *
的指针是可以的。
在func
中,参数str
已经是指向char const char *
的常量指针。指针s
指向str
的地址,因此是指向指针的指针。因此,您需要取消引用它两次以获取char数组的内容。
使用的演员阵容是C-casts。在C ++中,应优先选择强制转换运算符const_cast
,static_cast
,reinterpret_cast
和dynamic_cast
:
std::cout << *static_cast<char **>(s) << std::endl;