C,C++中关于char* 以及 char数组的问题
1,我定义了char*Pstr,这个Pstr明显是个指针,为何输出coutf<<Pstr<<endl;结果不是地址,而是整个字符串??2,当后面使用int的时候cout<...
1,我定义了char *Pstr,这个Pstr明显是个指针,为何输出coutf<<Pstr<<endl;结果不是地址,而是整个字符串??
2,当后面使用int的时候cout<<arr<<endl;结果却是地址????结合1和2两问题,int和char在这里有何不同??
3,我想用sizeof()求“hello”的大小,怎么求?
4,定义char str[]={'a','b','c','d','e','f','g','\0'}数组的时候,cout<<str<<endl;为何结果是整个字符串?不是地址??? 展开
2,当后面使用int的时候cout<<arr<<endl;结果却是地址????结合1和2两问题,int和char在这里有何不同??
3,我想用sizeof()求“hello”的大小,怎么求?
4,定义char str[]={'a','b','c','d','e','f','g','\0'}数组的时候,cout<<str<<endl;为何结果是整个字符串?不是地址??? 展开
展开全部
运算符重载可以做任何事情,没有任何规则所只要是地址打印出就是地址。而且char*是特殊的,从来没有在哪输出过地址
运算符重载,不是int/char不同,而是重载后int*和char*不同
sizeof("hello"),这是唯一的办法,赋值给指针后只能用strlen,不能用sizeof
同样,不要总想着参数是地址,输出也是地址,如果这样,高级语言就太无用了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.因为 iostream内部 cin cout 对char* 做了特殊处理.......因为c/c++ 输入输出字符串通常要用到char*
如果直接输出地址,就要用别的方法来输出字符串了 就不方便了.....所以直接输出地址 那里放着的字符串......
3、sizeof("hello");得到 字符串实际长度 + \0 占的一个字节
一般用strlen函数.......
同 1、2,str数组名 是 char* 地址
如果直接输出地址,就要用别的方法来输出字符串了 就不方便了.....所以直接输出地址 那里放着的字符串......
3、sizeof("hello");得到 字符串实际长度 + \0 占的一个字节
一般用strlen函数.......
同 1、2,str数组名 是 char* 地址
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、这是cout(const char *)函数的定义。为方便处理字符串。
2、字符串是数组,int只是一个数;
3、include <string.h>
4、同1.
2、字符串是数组,int只是一个数;
3、include <string.h>
4、同1.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询