#include<iostream>
using namespace std;
int main()
{
char name[10]="Ding";
cout<<name<<endl;
cout<<&name[0]<<endl;
return 0;
}
输出结果都是Ding
name[0]等于D,而输出&name[0]应该是取D的地址才对啊!!name表示数组的首地址,输出name应该是地址才对啊!!怎么这两个输出的语句却都为Ding
既然数组名就是一个指向数组首元素的一个地址 ,那就应该输出地址,就像0x13456这种形式的,怎么输出结果为Ding啊??
追答(1) 数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;
(2) 数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量;
(3) 指向数组的指针则是另外一种变量类型(在WIN32平台下,长度为4),仅仅意味着数组的存放地址!
。你看看参考资料,那里很全的。
http://cache.baidu.com/c?m=9d78d513d99256ae28fae27f1a61a3716f5797153ac0d06468a5e05fe7124c37427194b030236013a2c46b1371b8482cfd814565460637b6ebdffe4ecacb983f5efc30407008c1014cdc43e98d0432c0538d47acea5cf0ba8763cffe8c8e8a1544ca245427dfeddf1d4047913fad0962a3f7c31351080dbaef3367e25b76349c285db543f3eb376d0596f6aa060a9c74&p=c679d30286cc44a449a9c7710a4e&user=baidu&fm=sc&query=C%D3%EF%D1%D4+%CA%FD%D7%E9%C3%FB%CA%C7%D6%B8%CF%F2&qid=9b5a126507fd9229&p1=1
既然数组名就是一个指向数组首元素的一个地址 ,那就应该输出地址,就像0x13456这种形式的,怎么输出结果为Ding啊??
追答其实你用c写的话,只要用printf("%x", name),也能输出地址。在c++里cout是标准输出流,和printf是不一样的,cout其实是函数调用,不过这函数有些特殊,用的是运算符重载,确切地说是重载了“<<”运算符。具体你去查一下
c++程序分析题:写出下列程序的输出结果
第二个答案:5 4 第三个答案:结果2 第四个答案:z:3 第一个答案由于a++运算在后面,所以会先执行输出再+1 第二个答案由于是--b,运算在前面,就先做运算 第三个答案因为计算机非0即真,0是假,然后非一下就成真 第四个答案是三目运算符,?前面是条件,成真选:前面,否则选:后面 ...
C++分析下面程序的输出结果
第一个输出 BCED 每个case后面没有break 所以会把后面的都输出出来 第二个输出 15 第三个 输出 9 是把数组里面所有的大于或等于0的元素加起来求和
求c++高手解释一下程序的输出结果 ,谢谢!
然后执行下一句:q.show();输出依然是:Point[64]:(1,0)程序最后一句输出:p.showSumOfPoint();则输出:In total :66 points.全部讲解完毕。如果能当面解释应该很容易懂,因为要解释清楚,所以文字比 较长,有什么不周到之处,请谅解。
急~C++。这个程序段的输出结果是?int x=3;do {cout<<(x-=2);} while...
1-2,开始先输出3-2也就是1,此时--x是0,而(!(--x))则为非0,也就是真,继续执行输出,x-2就是0-2,就是-2,此时(!(--x))为0就是假,结束
c++中,这个程序为什么会输出如下结果。。那些9,8之类的数字从哪来的...
因为你用的是单引号,在输出时被cout解释成数字了,所以打印出来的是一串数字,不是你要的符号,把单引号换成双引号,以字符串形式输出。以上是推测的,手上没有电脑,你自己测试一下
C++输出问题。为什么下面程序的输出结果为*8992*8992*8992$。而不是所...
cout << ‘# ’ ;此语句有问题,将#后空位去掉即好
请问这个C++程序输出的结果是怎么计算的?
这个和你自己机器的位数、操作系统位数有关系,和编译器也有关系,要具体看,这种实际就是操作的位值,就相当于溢出,不同机器上的产生值不一样。具体就是所有数字全为1表示的十进制数值。编程没有这么写的,这么写有很多编译器直接会打出警告。
求C++程序输出结果
do { i++;a++;}while(i<3);i++;} cout<<a<<","<<i<<endl;for开始循环 i=1,a=0(初始化结果)进入do-while循环 直到i=3,a=2 推出do-while循环,继续 遇到i++, i=4,for循环i++ --> i=5 继续循环 进入do-while循环 i=6,a=3,退出do-while循环 遇到i++, i=7...
C++,哪位大侠帮忙把下面这个程序每行注释下,谢谢!
++str;\/\/指针向后移动一位,指向下一个字符。} } int main()\/\/主函数 { char buf[1024];\/\/定义一个字符数组 FILE *s = fopen("src.txt", "rt");\/\/打开指定的文件,输入字符流 FILE *d = fopen("dest.txt", "wt");\/\/打开指定的文件,输出字符流 if (s == NULL || d == ...
c++中为什么下面的这个程序输出的是“3673664”?输出的这串数字代表什么...
因为b[3][3]已经超出数组范围,会返回一个不确定的数。