hageking
@hageking

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

c++の関数について

Q&A

Closed

解決したいこと

以下のようなプログラムを実行すると同じ値(aaとbb)なのにfalseと出ます。
なんででしょうか?
解決方法を教えて下さい。

該当するソースコード

#include <iostream>
using namespace std;

void a (char aa[2]){
	char bb[2] = "a";
	cout << (aa==bb);
}

int main() {
	char aa[2] = "a";
	a(aa);
    return 0;
}

出力

0
0

2Answer

aabbはchar配列のアドレスです。
aa==bbでは配列の内容ではなく配列のアドレスを比較していることになるので、当然falseとなります。

0Like

Comments

  1. @hageking

    Questioner

    aaの状態だと配列のアドレスだったんですね。
    わかりました。回答ありがとうございました。

文字列の比較を行いたいのであればstrcmpの関数を調べればよいと思います。
要素を比較したいのであれば
aa[0]==bb[0]
で比較できます。

0Like

Comments

  1. @hageking

    Questioner

    わかりました。使ってみます。
    回答ありがとうございました。

Your answer might help someone💌