wlbk.net
当前位置:首页 >> 输出字符数组的数组名为什么不是地址,而是字符串... >>

输出字符数组的数组名为什么不是地址,而是字符串...

字符数组是可以用这种方式输出的,因为数组名即代表首地址,数组是一块连续的内存空间,所以能直接输出.如果是其他类型的数组则输出的是一个地址. 因为C和C++不进行数组的边界检查,数组在内存中存放的只是所有数组元素的值,而不存在一个地方可以表...

cout对char*型有特殊处理,输出char*型时按照C风格字符串输出。

字符数组是可以用这种方式输出的,因为数组名即代表首地址,数组是一块连续的内存空间,所以能直接输出.如果是其他类型的数组则输出的是一个地址. 因为C和C++不进行数组的边界检查,数组在内存中存放的只是所有数组元素的值,而不存在一个地方可以表...

#include int main(){ int a[10]; printf("%p\n", a); return 0;}这样是输出a的地址

对于char*或者char [] 会输出字符串 如果是string类型,如果你输出string本身,那么输出的是字符串 如果你输出的是string数组的数组名,那么输出的是地址。 比如 string a[2] = {"111111", "22222"}; 如果cout>>a[0]; 那么输出的就是 111111 如...

字符型数组在内存中的储存方式同字符串String类一样,故输出数组名并不是输出数组首地址,而是直接输出数组内容,,,,,, 而整形数组只是整形的集合,所以其数组名仅仅是其首地址,我们必须要用for循环才能完整的输出整个整形数组

因为你是按%s 字符串的格式输出的, 它一个接一个挨着输出, 直到遇见'\0'才中止

输出%s时,是按照printf的内置处理方法进行处理的(原型体似乎也是指针循环输出) 比如对于 字符串s 和 数组 a for(i=0;i

cout不是iostream中的吗? #include using namespace std; int main(){ char ch[]="hello world!\0"; cout

假定:char str[]={"12345"} 提供字符数组名称如printf("%s",str),实际上是给出了数组的起始地址,输出语句使用这个地址输出,就是按顺序输出直到遇到结束字符0才停止,结果输出的是字符串,%s要求提供字符串起始地址而不是某一个字符 如果提供...

网站首页 | 网站地图
All rights reserved Powered by www.wlbk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com