printf如何显示char*中的字符串?

Nar*_*uto 3 c++ pointers char

考虑一个简单的例子

Eg: const char* letter = "hi how r u";
Run Code Online (Sandbox Code Playgroud)

letter是一个const字符指针,指向字符串"hi how r u".现在,当我想打印数据或访问数据时,我应该使用*letter正确的?

但是在这种情况下,我不应该只在调用printf时使用地址吗?

printf("%s",letter);
Run Code Online (Sandbox Code Playgroud)

那么为什么呢?

Ern*_*ill 8

*letter实际上是一个角色; 这是letter指向的第一个角色.如果你正在操作一整串字符,那么按照惯例,函数将查看该字符,然后查看下一个字符,直到它们看到零('\ 0')字节.

一般来说,如果你有一堆指向一堆元素的指针(即一个数组),那么指针指向第一个元素,不管怎么说,在那一组元素上运行的任何代码都需要知道有多少元素.因为char*,零惯例; 对于其他类型的数组,您通常必须将长度作为另一个参数传递.