扫码关注官方订阅号
char a[6]="hello"; char b[5]={'t','e','s','t','\0'}; int c[]={1,2,3,4,5}; cout<<a<<endl; cout<<b<<endl; cout<<c<<endl;
输出结果 hello test 一串地址 为什么会有这种区别呢?
走同样的路,发现不同的人生
char *或者char []类型就默认以字符串形式输出
int []类型变量本质是这个数组的第一个元素的地址,所以输出的是地址
当然char *和char []也是地址,你要用printf("%x", a);输出的一样是地址
printf("%x", a);
虽然都是<<运算符重载,但是调用的函数不一样。char *输出会有个专门的函数,逐字节输出内容。其它指针只能把地址打印出来了。
<<
char *
char * 与int * 不一样罢了,这都是合理规定。
int *
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
char *或者char []类型就默认以字符串形式输出
int []类型变量本质是这个数组的第一个元素的地址,所以输出的是地址
当然char *和char []也是地址,你要用
printf("%x", a);
输出的一样是地址虽然都是
<<
运算符重载,但是调用的函数不一样。char *
输出会有个专门的函数,逐字节输出内容。其它指针只能把地址打印出来了。char *
与int *
不一样罢了,这都是合理规定。