C++指针指向字符串问题

2024-11-28 15:15:10
推荐回答(5个)
回答1:

你可以这样理解:

cout 对象在输出东西的时候,如果后边跟的是指针,一般会输出地址值,但如果这个地址指向的是字符串,则会将字符串输出到屏幕上,因为字符串一般都是和用户打交道的,为了省去由指针得到字符的过程,所以做了个这样的“规定"。

*p 的 p 定义的是 char 类型,*p 是取指针出指向的char ,故取出来的是 C ,而 C 跟在 cout 后边输出就是普通的输出了,不符合上边的”规定“。

回答2:

p是字符串的首地址
在输出时系统会自动的往下加,也就是说指针会自动指向下一个字符的地址,直到指向最后一个,,输出最后一个字符 ,所以cout<*p是字符串的第一个字符所以cout<<*p只会输出第一个字符

回答3:

1) cout后面接字符串的地址,表示输出这个字符串, 所以结果是China
2) p 是char *型,*p表示取一个char字节的值,*p等价于p[0], *(p+1)等价于p[1], ..., 所以输出C

回答4:

cout<cout<<*p;的结果是 C //相当与scanf("%c",p[0]);

c++ 重载了<< .

回答5:

第五十六集 指针指向字符串