C++还蛮有趣的嘛!
来源:百度知道 编辑:UC知道 时间:2024/05/14 14:48:29
#include<iostream.h>
int main()
{
cout<<int("我聪明">"电脑聪明")<<endl;
return 0;
};
它返回的是1,也就是真。
如果把>换成<,它返回0。
电脑是根据什么去判断的!?
但是比较成功了啊! 谁能解释一下嘛!
int main()
{
cout<<int("我聪明">"电脑聪明")<<endl;
return 0;
};
它返回的是1,也就是真。
如果把>换成<,它返回0。
电脑是根据什么去判断的!?
但是比较成功了啊! 谁能解释一下嘛!
这里比较的并不是什么字符串的大小和长度
而是比较两个地址的大小
cout<<int("我聪明">"电脑聪明")<<endl;
执行这个以后,会在常量区分配2段空间来分别存这两个字符串常量
因为在C++下的分配是这样的,先在高地址分配,再在低地址分配
比如说:
int main()
{
int a,int b;
printf("%x,%x",&a,&b);
}
结果为:12ff5c,12ff58 <a的地址值大于b的地址值>
在联系到你这个上面就很好理解吧!
如果这个题目到TC下运行,结果就会为0
因为TC的分配方式是从低到高的,先分配的为低地址,后分配的为高地址
注意,全局的和静态的并不是这样的,应该是在栈上分配的满足,先在栈顶分配
a的空间,再分配b的空间,如果是这样的话,那么栈底到栈顶的地址空间是从
大到小的,其实这个也比较符合平常的思路.
打个比方说栈的大小为1M
那么从1M为首地址开始分配起,分配到地址为0,那么栈就满了!
第一个问题:字符串对比用strcmp
第二个问题:是一个一个字母进行比较的,ASCII
当我没说..
归根到底电脑只认识二进制数,就是通过汉字的编码进行比较的
#include <iostream>
using namespace std;
int main()
{
cout<<int("我聪明">"电脑聪明")<<endl;
cout<<int("电脑聪明吧">&quo