注册 登录
编程论坛 C++教室

很难得问题 都来看看!

qinjiu 发布于 2013-03-11 07:38, 874 次点击
    char a[26]="ddd";
    char b[26]="ddd";
    if(a==b)
    {
        MessageBox("sss");
    }
   
}

哪错了??为什么不弹窗呢?该怎么比较才行?
10 回复
#2
qunxingw2013-03-11 08:01
数组地址与数组元素是不一的
#3
peach54602013-03-11 08:12
好难呀
指针地址不相等
#4
wp2319572013-03-11 08:29
程序代码:
#include<windows.h>
#include<stdio.h>
int main()
{
    char a[26]="ddd";
    char b[26]="ddd";
    if((b-a)==28)
    {
       MessageBoxA(0,0,0,0);
    }
    printf("%d",b-a);
    return 0;
}
这段代码 可能会弹出一个窗体 也可能不会
#5
爱电脑的小白2013-03-11 16:07
回复 4楼 wp231957
if((b-a)==28)  是干什么啊??
#6
爱电脑的小白2013-03-11 16:08
回复 4楼 wp231957
-28  会弹出窗口
#7
yuccn2013-03-11 16:17
if (strcmp(a,b) == 0)
#8
peach54602013-03-12 12:36
以下是引用爱电脑的小白在2013-3-11 16:07:00的发言:

if((b-a)==28)  是干什么啊??

呵呵,内存分配是连续的
#9
sam0312013-03-12 23:14
以下是引用yuccn在2013-3-11 16:17:58的发言:

if (strcmp(a,b) == 0)


7楼的可以有!
需备注:include <cstring>
同时  if (strcmp(a,b))  简洁点
#10
ap08053192013-03-13 10:13
a,b是数组a,b的首元素的指针,a==b,比较的是指针变量a,b内保存是地址值是否相等,因为两个不同数组不可能占用同一内存单元,当然不相等。
#11
贝斯0072013-03-14 16:10
回复 楼主 qinjiu
表头没有吧??我刚刚学   这个
1