char array[5][4];
多次元配列array[1]には1~1000までの整数が入ります。
array[1][0]=>1
array[1][1]=>null
かもしれないし、
array[1][0]=>1
array[1][1]=>0
array[1][2]=>0
array[1][3]=>0
array[1][4]=>null
かもしれません。
ランダムにしてるので私も何が入るのかわかりません。
とりあえず整数(int)配列ではなく
文字列(char)配列ということで。
そこで
arrayに1のとき(array[1][0]=>1,array[1][1]=>null)
if文で処理をしたいのですが、
どのようにしたらよろしいですか?
if(array[1] == "1")
このようにしても上手く動作しません。
初歩的なことで申し訳ないのですが
おしえてください。
配列
Re:配列
すでに解決しているところを、重隅をつつくようで申し訳ないのですが。
文字が必要なところで null とか NULL がちらほらと出てきていますが。
nullについては、ANSI-C の規格には無いようなのでちょっとスルーしますが、新ANSI C言語辞典によれば、NULLとは次のようにあります。
NULL[ヌル](=空) (1)空ポインタ (2)[マクロ/空ポインタ定数- | <stddef.h>,<stdio.h>,<stdlib.h>,string.h>,<time.h> | 値0の汎整数定数式か、void*型にキャストした式] 空(null) ポインタを示す空ポインタ定数である。
とあります。
また空ポインタについては次の通りです。
空ポインタ(null pointer) いかなるオブジェクト(記憶域)へのポインタとも、いかなる関数へのポインタとも区別され、比較しても等しいことはないポインタ。
C言語では、ポインタが現れるべき場所に定数0が現れると、それは空ポインタであると読み替えられます。
ですから、#define NULL 0x12345 といったあまり一般的でない定義の処理系であっても、char *hoge = 0; というコードと、char *hoge = NULL; というコードは等価となります。
だもので、本来char型と比較したり代入したりする物ではないと思うのですが。
一連の流れの中で、さもあって当然のように扱われていたので、ちょっと気になった次第です。
最近の規格は解らないのですが、実際のところどうなんでしょう。
文字が必要なところで null とか NULL がちらほらと出てきていますが。
nullについては、ANSI-C の規格には無いようなのでちょっとスルーしますが、新ANSI C言語辞典によれば、NULLとは次のようにあります。
NULL[ヌル](=空) (1)空ポインタ (2)[マクロ/空ポインタ定数- | <stddef.h>,<stdio.h>,<stdlib.h>,string.h>,<time.h> | 値0の汎整数定数式か、void*型にキャストした式] 空(null) ポインタを示す空ポインタ定数である。
とあります。
また空ポインタについては次の通りです。
空ポインタ(null pointer) いかなるオブジェクト(記憶域)へのポインタとも、いかなる関数へのポインタとも区別され、比較しても等しいことはないポインタ。
C言語では、ポインタが現れるべき場所に定数0が現れると、それは空ポインタであると読み替えられます。
ですから、#define NULL 0x12345 といったあまり一般的でない定義の処理系であっても、char *hoge = 0; というコードと、char *hoge = NULL; というコードは等価となります。
だもので、本来char型と比較したり代入したりする物ではないと思うのですが。
一連の流れの中で、さもあって当然のように扱われていたので、ちょっと気になった次第です。
最近の規格は解らないのですが、実際のところどうなんでしょう。