C言語なら俺に聞け( ..
[2ch|▼Menu]
577:デフォルトの名無しさん
07/05/14 17:57:07
URLリンク(www.psl.ne.jp)
ちっちっち、なんか勘違いしていないかね?NULLポインタとNULL文字とはまた別物だよ?

578:デフォルトの名無しさん
07/05/14 18:08:59
>>577
出力形式が、紙への印刷しかなかった時代が有ることを説明しないと無理でしょw


579:デフォルトの名無しさん
07/05/14 18:12:36
>>578
いやいや、そうじゃなくて、NULLといってもポインタと文字とは別物だってことなんだが?

580:デフォルトの名無しさん
07/05/14 18:13:10
>>572
正確に言えば
NULL=値無し、アドレス有り
¥0  =値0 、アドレス無し
0   =値0 、アドレス有り
だけどねw

581:デフォルトの名無しさん
07/05/14 18:13:58
何で初心者が回答したがるんですか?

582:デフォルトの名無しさん
07/05/14 18:15:13
>>580 イミフw
アドレス無かったら値入れれませんがw

583:デフォルトの名無しさん
07/05/14 18:16:35
文字配列をNULLポインタに指定するのと、文字配列の中にNULL文字を入れるのとでは
ぜんぜん意味が違うということさ。前者はまだ文字列を指定するアドレスが指定されいない
何もないところを示しているが、後者は文字列の中にNULL文字だけでも入っていれば
空ではあるが文字列(の先頭)を示すアドレスは存在しているよん。

584:デフォルトの名無しさん
07/05/14 18:17:23
>>580
志村ーーー、上の2つのアドレスありなしは逆逆w

585:デフォルトの名無しさん
07/05/14 18:17:37
あの・・・
かなり前に関数で配列の数を数えたいといった(内積を計算したいと)ものなんですが
NULLになるまでcount++するというプログラムならいけるかなと思いまして。
ぬるぽっていうのは、char型のアドレス限定ですか?

586:デフォルトの名無しさん
07/05/14 18:19:29
そもそも「¥0」ってなんだ?
好意的に解釈して「\(バックスラッシュ)0」の心算なんだろうけど、
'\0'と書かないと意味を持たない希ガス。

587:デフォルトの名無しさん
07/05/14 18:20:34
>>580
アドレスの有無ってなんだよ

いかなる値でも記憶領域に属していればアドレスはあるし、
そうでなければアドレスはないだろ。

588:デフォルトの名無しさん
07/05/14 18:21:49
#include <stdio.h>
int main(void) {
char *a=NULL,*b={"\0"},*c={"0"};

printf("%p : %s \n",a,a);
printf("%p : %s \n",b,b);
printf("%p : %s \n",c,c);
return 0;}

これの出力結果を見れば一目瞭然だよ

589:デフォルトの名無しさん
07/05/14 18:26:10
>>588マジレス乙

590:デフォルトの名無しさん
07/05/14 18:29:13
>>588を実行すると、異常終了して1行も出力されません。
どうしたら一目瞭然になるんでしょうか。

591:デフォルトの名無しさん
07/05/14 18:30:33
>>590
とりあえずaを表示する部分を消して下の2つは確認できる?

592:デフォルトの名無しさん
07/05/14 18:31:00
>>590
ゴメンよ なぜか知らんがコンパイルできて出力できてしまったよw

593:デフォルトの名無しさん
07/05/14 18:32:46
>>588の出力結果は、俺んとこ(WinXP , BCC使用)でやったら

00000000 : (null)
0040A128 :
0040A12A : 0

っと表示された。

594:デフォルトの名無しさん
07/05/14 18:33:23
(nil) : (null)
0x80484cc :
0x80484ce : 0

595:デフォルトの名無しさん
07/05/14 18:34:16
>>585
ガッ
いや、char型のアドレスだけじゃなく他の型でもNULLはある。
charとかchar[]はNULL文字と深くかかわってるけどNULL文字とNULLポインタは全く別物。
NULL文字は文字列の最後に終端記号として置かれる物。
NULLはポインタがどこも指してない事を示す記号として色んな型のポインタ変数に入れられる物。

596:デフォルトの名無しさん
07/05/14 18:34:37
0x0 : (null)
0x402000 :
0x402002 : 0


597:デフォルトの名無しさん
07/05/14 18:42:21
こういうアホ連中がそのうち社会に解き鼻垂れるのかと思うと
陰鬱な気持ちになるな・・・

598:デフォルトの名無しさん
07/05/14 18:43:38
ヒント
int main(void)
{
printf("てすつ");
return NULL;
}
やってみようw

599:デフォルトの名無しさん
07/05/14 18:45:45
>>598
> return NULL;
いっ、いぃ〜〜のか?

600:デフォルトの名無しさん
07/05/14 18:46:08
コンパイルとおりませんでした。

601:デフォルトの名無しさん
07/05/14 18:47:09
$ gcc -xc -
#include <stdio.h>
int main(void)
{
printf("てすつ");
return NULL;
} ^D
<stdin>: In function ‘main’:
<stdin>:5: 警告: return makes integer from pointer without a cast
$ ./a.out
てすつ
$ echo $?
0

602:デフォルトの名無しさん
07/05/14 18:48:01
>>597=>>286
とか上からものを言っているあほなお前がすでに社会に出ている方が怖い

603:デフォルトの名無しさん
07/05/14 18:51:37
ヒント
マは人格障害者の宝庫w

604:デフォルトの名無しさん
07/05/14 18:52:38
俺に聞け スレで 俺に聞くなよ って態度は何様だよ?w

605:デフォルトの名無しさん
07/05/14 18:55:06
ここは初心者さんのスレだから、イイのw
【1】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return NULL;
}
【2】
#include <stdio.h>
int main(void)
{
printf("てすつ");
return ;
}
【3】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return ;
}
それぞれやってみよう

606:デフォルトの名無しさん
07/05/14 18:57:22
>>605
> やってみよう
何が目的?何が言いたい?はっきりしろ、うっとうしい

607:デフォルトの名無しさん
07/05/14 18:57:37
そういう阿呆なこと教えるから、阿呆プログラマが量産されるわけだ。

608:せんしぇ〜 ◆cNsKLREitk
07/05/14 19:01:47
はい。
コンパイルのはじき方が理解できましたか?

609:デフォルトの名無しさん
07/05/14 19:02:46
我ら幼い人類に 目覚めてくれと 鼻垂れた〜

610:デフォルトの名無しさん
07/05/14 19:10:28
>>608
もしかして、そういうの面白いと思ってる?

611:デフォルトの名無しさん
07/05/14 19:11:49
ぜんぜん

612:デフォルトの名無しさん
07/05/14 19:12:05
605 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:55:06
ここは初心者さんのスレだから、イイのw
【1】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return NULL;
}
【2】
#include <stdio.h>
int main(void)
{
printf("てすつ");
return ;
}
【3】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return ;
}
それぞれやってみよう

ここは初心者さんのスレだから、イイのw
ここは初心者さんのスレだから、イイのw
ここは初心者さんのスレだから、イイのw
それぞれやってみよう
それぞれやってみよう
それぞれやってみよう
それぞれやってみよう

613:デフォルトの名無しさん
07/05/14 19:25:59
>>608のが面白いとは思わないけど
>>612みたいなのも面白いとは思わない

614:デフォルトの名無しさん
07/05/14 19:28:09
>>613 自己擁護乙。お前つまんねっ、初心者を見ていらつくくらいなら
こんなスレに来るなよw お前みたいな気持ち悪い基地外に回答なんて求めてねーよボケ
俺は初心者じゃなくて回答する側だけどなw

615:デフォルトの名無しさん
07/05/14 19:29:07
んで、さっきっからこいつも何?せめて自分の使用環境くらい書けようぜぇ

600 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:46:08
コンパイルとおりませんでした。

590 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:29:13
>>588を実行すると、異常終了して1行も出力されません。
どうしたら一目瞭然になるんでしょうか。

616:デフォルトの名無しさん
07/05/14 19:31:21
んでさぁ、これって何の  ヒ  ン  ト  なの?なんについてのレス?
main関数の戻り値はintって指定してあるのに、NULL指定って何?ただのバカ?失せろ社会のクズw

598 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:43:38
ヒント
int main(void)
{
printf("てすつ");
return NULL;
}
やってみようw

617:デフォルトの名無しさん
07/05/14 19:31:27
>>614
どこがどう擁護してるのか分からないけど
言われて傷ついた?
そろそろwつけるの止めたほうがいいよ

618:デフォルトの名無しさん
07/05/14 19:32:40
>>617
はいっ、そうやって言い返さないと気がすまない=自分を自分で擁護して必死こいているのがバレバレ
なんすけど?擁護する必要すらない。お前みたいな奴は養護学校へ行けw

619:デフォルトの名無しさん
07/05/14 19:33:18
やっぱり最近ここ荒らしてるって
このwつけるやつだと思う


620:デフォルトの名無しさん
07/05/14 19:34:08
>>617
> 言われて傷ついた?
それお前だろ?お前が基地外だのこのスレには不要だのバカだの言われて
戦力外通告されて必死だな

621:デフォルトの名無しさん
07/05/14 19:34:26
>>618
面白くない

622:デフォルトの名無しさん
07/05/14 19:36:51
>>619=>>286 以下このスレの質問には無関係な自分の知識をひけらかして他人の無知を探ろうとしている奴
クソレスして他人の気分を害している  お  前  が  言  う  な  
>>605みたいなのがうぜぇ。本当にバカじゃね?何いきなり戻り値の話に持ち込んでんだよ?
NULLを使う場所間違ってんぞ
以後、ここで質問に関係ないレスをしている奴は、現実世界で友達のいない寂しがりやだと思って
見守ってやってください。ここではもちろん スルー でおながいします。

623:デフォルトの名無しさん
07/05/14 19:37:47
必死すぎだろ・・・

624:デフォルトの名無しさん
07/05/14 19:38:29
やっぱ荒れてきた
>>622
wつけるの止めたの?

625:デフォルトの名無しさん
07/05/14 19:39:18
必死すぎワロタ

626:デフォルトの名無しさん
07/05/14 19:39:55
誰か配列の大きさを調べる関数を書いてくれるとありがたし

627:デフォルトの名無しさん
07/05/14 19:41:03
>>626
大きさって何ですか?もっと詳しく!

628:デフォルトの名無しさん
07/05/14 19:42:52
>>622
>ここで質問に関係ないレス
>  お  前  が  言  う  な

>>626
Cでそれは無理ではないだろうか


629:デフォルトの名無しさん
07/05/14 19:46:04
さっきっからファビョって自分を擁護している奴って間違えた
>>580 と >>572か?まぁ、誰が誰をバカにしているかわからんが
答えるなら正確に調べてからレスするなり、参照できるページを使うのもありだぞ。
答えても相手が理解する能力がなければそれまでだしな。
けど、int mainの戻り値にreturn NULL;とかありえないから。
NULLに関するヒントとか何にもなってないし、明らかにint mainとしているだけあって
戻り値の指定が不適切ってことしか言えないから。関数の前に記述している型について
理解していないことをカミングアウトしなくて良いから、こんなスレで自分も初心者でぇ〜す
ってことをアピールしなくて良いから、ファビョらず黙っていてくれ。

630:デフォルトの名無しさん
07/05/14 19:46:57
>>628=間違ったヒントを出して赤っ恥かいているバカ
以後放置よろ

631:デフォルトの名無しさん
07/05/14 19:47:29
すいません
C言語でしか作れないプログラムはありますか?
Cの良さってなんですか?

付け加えて他の言語の良さ悪さを教えてください

632:デフォルトの名無しさん
07/05/14 19:49:27
>>630
じゃあ正しいヒントだせば?
でなきゃ>>628と同じ


633:デフォルトの名無しさん
07/05/14 19:51:28
>>632
ただしいヒントとかじゃなくて、何であんな無意味なヒント出したんだ?w
何が意図かはっきりしろって言われてんじゃん。なお、NULLポインタについては
すでにソース付きでレスがあるんであしからず。

634:デフォルトの名無しさん
07/05/14 19:52:32
>>628=>>632 他人を装ってしらじらしいんですけど。
>>605 >>598 なんすかこれ?

635:デフォルトの名無しさん
07/05/14 19:53:12
>>633
さっきから間違えてるんだけど
>>613より前にレスしてないし


636:デフォルトの名無しさん
07/05/14 19:53:49
趣味でハックしてる人はソースコードでハァハァってオナニーしているって聞きましたが

お金かからなくていいですね・・・・・・・・・
うらやましいです

637:デフォルトの名無しさん
07/05/14 19:54:24
っと、最後まで自分の間違いを隠そうと相手に必死こいて相手のボロを出そうとしている
赤っ恥さんがいましたとさ。以後放置よろ。

638:デフォルトの名無しさん
07/05/14 19:57:10
>>637
いろいろ必死すぎ・・・

639:デフォルトの名無しさん
07/05/14 19:57:54
つうか 過去レス探すのメンドクサイからHP作れよ!

640:デフォルトの名無しさん
07/05/14 19:58:14
>以後放置よろ
これみて思い出したけど前回荒れたときもこいついた

641:デフォルトの名無しさん
07/05/14 20:01:38
んで、みんな >>605 をそれぞれやってみた?
コンパイルエラーだの警告だの出たよね?だから何?としか言いようがないんすけど・・・
>>605は何をしたかったか、明確なレスを求む。

642:デフォルトの名無しさん
07/05/14 20:08:02
>>641
やってないし、やる気もない

643:デフォルトの名無しさん
07/05/14 20:10:06
>>642
やってないお前に聞いてないけど?だからそういうレスするなって。
NULLポインタのアドレスを表示するコンパイルもしてないくせに。

644:デフォルトの名無しさん
07/05/14 20:12:55
>>643
>みんな
>それぞれやってみた?
やった人間だけレスしろというなら最初からそう書け
お前は抜けてるんだよいろいろと

645:デフォルトの名無しさん
07/05/14 20:14:08
さっきっから何かと噛み付いてこないと気がすまない基地外がいるんだな。
わかりやすいね、そういう人間って。このスレには初心者が集まって
自分より知識のないやつが多いと思い込んで、浅はかな知識でレスしちゃっているんだろうけど
それが仇となってボロだしまくりで恥をかく奴。

646:デフォルトの名無しさん
07/05/14 20:14:17
>>643
そろそろ消えてください

647:デフォルトの名無しさん
07/05/14 20:15:22
>>645
いちいちレスするな
うざい

648:デフォルトの名無しさん
07/05/14 20:15:36
>>644
はぁ?抜けているのはお前。しかもお前には脳みそが抜けているようだ。
日本語がわからない?何他人に指図してんだよ?こっちはやれよとは言ってないが
やってみた?とは聞いたが?何これ?何俺に噛み付いてんの?さっきから基地外だよなお前はw
抜けているのはお前の脳みそ、な?理解しろ。
> 最初からそう書け
何命令してファビョってんだよ?わけのわかんねーソースを書いたNULLポインタ厨w

649:デフォルトの名無しさん
07/05/14 20:15:44
ん〜と、やってみてだから何?という人に早くレスしてあげてください。
さっさとね。

650:デフォルトの名無しさん
07/05/14 20:16:54
何言ってもこういう自分中心人間には効かないんだろうな
ある意味うらやましい

651:デフォルトの名無しさん
07/05/14 20:17:11
>>647=>>646=>>644 初心者叩きするのに失敗して赤っ恥ソースを出した厨房必死だなwwwww
何そこまで必死こいてんの?あっ、あのソースをコンパイルされて、自分がボロを出して
バカだということを露呈されるのが怖いんだぁ〜〜〜〜(^ー^)b
コンパイルした奴らにはあほだということがバレて大恥かいたもんなぁ〜〜〜君ってw


652:デフォルトの名無しさん
07/05/14 20:18:44
>>650
そうだね、わけのわからねーソースを出してreturn NULLしちゃっているぬるい奴って
>>598 >>605 < こっ、こここ、これは・・・すごい大ヒントだ!こいつがバカだってことがわかる大ヒントw

653:デフォルトの名無しさん
07/05/14 20:20:42
>>605
ほらほら早く説明しろよ。初心者さんがコンパイルして待ってまつよ。
ほら、涙目を拭いてさ。

654:デフォルトの名無しさん
07/05/14 20:20:46
こうゆうスレには 群がってくるんだな 
有る意味新鮮

655:デフォルトの名無しさん
07/05/14 20:21:01
>>590だけコンパイルできない(しょぼい環境)を使っていることがバレバレ
もしかして、OSはMS-DOSでつか?

656:デフォルトの名無しさん
07/05/14 20:22:24
608 名前:せんしぇ〜 ◆cNsKLREitk 投稿日:2007/05/14(月) 19:01:47
はい。
コンパイルのはじき方が理解できましたか?
↑しかもこれがあのヒントの答えだろ?だから何?コンパイルエラーを誘うなら
別にreturn NULLじゃなくても通らないソースを書けばおkだろ?
NULLの取り扱いについてなんら説明になってないから。

657:デフォルトの名無しさん
07/05/14 20:25:05
>>631
以前他のスレで似たような質問があってその回答だけどどうぞ。
スレリンク(tech板:539番)


658:デフォルトの名無しさん
07/05/14 20:25:31
オレ、このスレのこと一生忘れない

659:デフォルトの名無しさん
07/05/14 20:25:34
しつけ〜

660:デフォルトの名無しさん
07/05/14 20:30:26
ってか俺も言っててわけわからなくなったw
return NULL;だけを持ち出したらそれはそれで問題とならないが
あれがその前の流れからして何のヒントなのか?それが知りたいw

661:デフォルトの名無しさん
07/05/14 20:35:07
おわった?

662:デフォルトの名無しさん
07/05/14 20:37:58
ヒント
#include <stdio.h>
int main(void){
int x=NULL;
printf("%d \n",x);
return 0;
}
さぁ、int型のxに代入された値はなんだった?俺んとこは0。
ただ、これはNULLポインタとは話は別なんで、あしからず。

663:デフォルトの名無しさん
07/05/14 20:39:12
環境依存

664:デフォルトの名無しさん
07/05/14 20:41:07
さて、もう一つ、大大だーーーーいヒントでピントを与えちゃよ。
次は文字データとしてNULLを指定しちゃうよ。俺んとこは空文字でコードは0が入った。

#include <stdio.h>
int main(void){
char x=NULL;
printf("%c %d \n",x,x);
return 0;
}

665:デフォルトの名無しさん
07/05/14 20:42:57
そう、何か値(データ)として与えるのと、ポインタに対して与えるのとでは
ぜんぜん違うんですねぇ〜。これならわかるでしょ。NULLそのものが何なのか。
え?こんな説明じゃ不十分でヌルい?まぁ、後は使い方を適切にしてやってくれ。
ポインタにNULLを与えた場合、何も示すアドレスがないってことには変わりはないさ。

666:デフォルトの名無しさん
07/05/14 20:43:46
>>662
これ、時々偉そうに「環境依存」だなんていう奴がいたりするけど
実際に0が出ない環境を見たことあるのか?


667:デフォルトの名無しさん
07/05/14 20:50:12
>>665
まずは、お前のレスがどれか教えてくれ

668:デフォルトの名無しさん
07/05/14 20:56:55
>>667
そうやって相手をさぐろうとするだろ?だから気持ち悪いって思われるんだよ。
>>662が本日の最初だが?だから何だ?って言われることをお前は言うから
日頃周りから「なんだこいつ?気持ち悪い」って思われてんだよ。
いいたいことがあるなら言えよ、相手次第でいえるとかやっているから
お前は弱者を見つけては相手を叩く性格になっちまったんだろ?
自分が筋の通る説明ができないなら黙ってた方が良いぞ。
ちなみに、&xにして%pでポインタのアドレスを確認すると、
中にNULLで与えた値は入っているが、ちゃんとアドレスは割振られているから。確認してみろ。


669:デフォルトの名無しさん
07/05/14 20:57:46
>>535 プログラムよりアルゴリズムの方が(数学が)難しかった
#include<stdio.h>
int main(void){
    int x, tmp, left, ans, digit_align;

    printf("正整数を入力してください > ");
    scanf("%d", &x);
    if(x<0){printf("\nError:正整数を入力してください\n");return 1;}

    for(digit_align=1;x/digit_align>=100;digit_align*=100);

    left=x/digit_align;
    ans=0;
    while(left>0 || digit_align>0){
        for(tmp=9;tmp>0;tmp--)
            if((ans*20+tmp)*tmp<=left)
                break;
        if((ans*20+tmp)*tmp<0) break; // overflow?
        printf("%d", tmp);
        if(digit_align==1) printf(".");
        digit_align/=100;
        if(digit_align>0)
            left=(left-(ans*20+tmp)*tmp)*100+(x/digit_align)%100;
        else
            left=(left-(ans*20+tmp)*tmp)*100;
        ans=ans*10+tmp;
    }
    printf("\n");

    return 0;
}

670:デフォルトの名無しさん
07/05/14 21:00:50
ポインタに対してと値との違いがわからないならプログラムなんてやめとけ。

#include <stdio.h>
int main(void){
char x=NULL,*xn=NULL;
int y=NULL,*yn=NULL;

printf("char x=NULL : %p -%c- \nchar *xn=NULL : %p \n",&x,x,xn);
printf("int y=NULL : %p -%d- \nint *yn=NULL : %p",&y,y,yn);
return 0;
}

671:デフォルトの名無しさん
07/05/14 21:00:51
#include <stdio.h>
void main(void)
{
printf("てすつ");
int a;
a=NULL;
return a;
}


672:デフォルトの名無しさん
07/05/14 21:04:23
>>668
被害妄想激し過ぎだろ…
普通に流れが混乱して誰が誰か分からなかっただけなんだが、
まあいいや

673:デフォルトの名無しさん
07/05/14 21:06:10
>>669
ありがとうございました
助かりました

他のアホどもとは格が違いますね

674:デフォルトの名無しさん
07/05/14 21:06:58
>>672
うざい。何が言いたいかはっきりしろ。相手がどうとか関係なしに
NULLがどういうことか?の話で説明する相手次第で事実関係を捻じ曲げたり
おかしいと自分が思ったことを叩きつけるのはどうかと。言いたいことがあるなら言え。
すでにソースを提示して証明されてんだろ。ポインタとNULL(データ)を与えるのとはどういことかについて。
理解できないのにこんなスレで無知な初心者相手にいい加減なレスをしているのか貴様は?

675:デフォルトの名無しさん
07/05/14 21:11:02
>>672
相手にしないほうがいいよ
さっきだって人違いって言ってるのにわかろうとしないし
といっても擁護乙って言われるだけだけど
自分に対する批判は>>605だと思ってるから
ちなみに>>662が本日の最初って言うのはうそだから


676:デフォルトの名無しさん
07/05/14 21:12:14
>>673 訂正
先頭に #include<limits.h> を追加

        if((ans*20+tmp)*tmp<0) break; // overflow?

        if(ans>=(INT_MAX-81)/180) break; //overflow?

677:デフォルトの名無しさん
07/05/14 21:13:21
>>675
ですね
すみません

678:デフォルトの名無しさん
07/05/14 21:21:10
ぬるぽを代入するなら#define NULLPO 0にするか普通に0使えって事ですか?

679:デフォルトの名無しさん
07/05/14 21:21:55
>>631
マイコン等を使う組込系では、Cしか高級言語の選択肢がない
(ほかは低級なアセンブリ言語)という場合も多い。

680:デフォルトの名無しさん
07/05/14 21:23:58
>>678
NULLを代入したいのならNULLと書けばいいだろうガッ

681:デフォルトの名無しさん
07/05/14 21:24:08
>>666
「NULLが(void*)0と定義されていてコンパイルエラーになる」という可能性もある。

>>673
次から宿題スレ行け
C/C++の宿題を片付けます 87代目
スレリンク(tech板)l50

682:デフォルトの名無しさん
07/05/14 21:25:22
>>669
ここを宿題スレにするつもりか?

683:デフォルトの名無しさん
07/05/14 21:28:14
C FAQ の事も時々でいいから思い出してあげてください。
URLリンク(www.kouno.jp)


684:デフォルトの名無しさん
07/05/14 21:32:59
>>681
んー・・・
基本的に「代入したらいくつになるの?」って話だから、
代入ぐらいさせてくれ(っていうか初期化だな。こりゃ)。

int x=(int)NULL;

で x が 0 で初期化されない環境があるかないか、という事で。


685:デフォルトの名無しさん
07/05/14 21:42:51
あのさ 
お前らって「Cパズル」ってやったこと無いだろw



686:デフォルトの名無しさん
07/05/14 21:48:31
ないお^^

687:デフォルトの名無しさん
07/05/14 21:52:39
>>684
C FAQから
URLリンク(www.kouno.jp)
たぶんこうこうところなら(int)NULLは0にならないのだろう

688:デフォルトの名無しさん
07/05/14 22:15:24
>>687
>たぶんこうこうところなら(int)NULLは0にならないのだろう 

URLリンク(www.kouno.jp)
を読んだ?


689:デフォルトの名無しさん
07/05/14 22:27:51
Cなら NULL か 0 を必要に応じて使い分けなくてはならない

C++なら、ほとんどのプログラマーが 0 を使っている

VCなら nullptr で即解決

690:687
07/05/14 22:37:03
>>688
すまん687のNULLは(void*)0のことだと思ってほしい。
FAQ 5.5は0をポインタ型として扱うときの話だろ。
でもここではヌルポインタを整数型として扱おうとしている。
C++でいうところのreinterpret_cast<int>((void*)0)を表したかった。

691:デフォルトの名無しさん
07/05/14 23:28:36
規格上の話を言えばポインタから整数型への変換は implementation-defined だから、何も言えないかと。
大抵はいちいち変換かけたりせず値としてはそのままにするだろうから、実際上は >687 の通りだと思う。

で、調べてて気づいたんだけど、9899:1999 だと、ポインタ型→整数型→元のポインタ型で元の値に戻ることすら
保証されてない(void* 経由ならOK)。
14882:2003 だと、整数型が十分な大きさであれば↑で元の値に戻ると明示されてるんだけど。

692:デフォルトの名無しさん
07/05/14 23:48:33
Wikipedia項目リンク(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF)
まだやってんのかよ。実際にNULLをコードの中に入れてどういう結果が出力されたかで
わかるだろ。各個人の勝手な定義や妄想はいらねーって。
time(NULL)だの使われているけど、何もないを与えてもしゃーないべ?
だから、データや値として与えた場合と、ポインタに与えた場合とでどう違うか?

それはそうと、>>580あたりで \0 (NULL文字)の値(コード)が0なのは良いとして
アドレス無しってところがどういうことなのか、説明を求む。
文字列の終端を示す文字として使われているんで、その終わりを示す場所にも
先頭からそのNULL文字そのもののアドレスまでちゃんと割り振られているとは思うが?
>>568で言えば unko の後ろに空文字が入っている場所のアドレスが存在していると思うが?

#include <stdio.h>
int main(void)
{
char a[5]="unko";
size_t i,sz=sizeof(a)/sizeof(a[0]);
for(i=0; i<sz; i++)
printf("a[%d] : %p / \"%c\" \n",i,&a[i],a[i]);
return 0;
}

693:デフォルトの名無しさん
07/05/14 23:56:42
printf("a[%d] : %p / \"%c\" / code : %d \n",i,&a[i],a[i],a[i]);
なんならこうして、文字コードも参照してみるか?って終端の\0(NULL文字)に対して
ASCIIコードでは0が割り当てられているのは既出だが、ちゃんとコード(値)0として
扱われてんだよ。そこは実装されている言語によって扱われ方も違う点はあるだろうけど
なんだかんだ言ってもそれはおかしいといっても、実際はそう扱われているというのが現実。
なぁ、おまいら、いい加減目を覚ませよ?辻はもう処女じゃないんだぜ?それが現実さ(タバコを吸う紳士のAA略)

694:デフォルトの名無しさん
07/05/14 23:58:03
だれもそんな話してないだろ・・・

695:デフォルトの名無しさん
07/05/15 00:00:21
またNULLの話してんのかよ。毎度毎度よく飽きねえな

696:デフォルトの名無しさん
07/05/15 00:01:24
これでどうだ?
#include <stdio.h>
int main(void)
{
char a[5];
size_t i,sz=sizeof(a)/sizeof(a[0]);
a[0]='u';
a[1]='n';
a[2]='k';
a[3]='o';
a[4]=NULL;
for(i=0; i<sz; i++)
printf("a[%d] : %p / \"%c\" / code : %d \n",i,&a[i],a[i],a[i]);
puts(a);
return 0;
}


697:デフォルトの名無しさん
07/05/15 00:02:29
>>694
反応しちゃダメ

698:デフォルトの名無しさん
07/05/15 00:02:56
毎年分からないやつが入ってくるんだから
同じ話題が繰り返されるのはしょうがないさ

699:デフォルトの名無しさん
07/05/15 00:09:19
これが現実だ φ1・2・3!
URLリンク(images.google.co.jp)
URLリンク(puka-world.com)
URLリンク(puka-world.com)


700:デフォルトの名無しさん
07/05/15 01:35:35
つまりこういう事

void hoge(void)
{
return;
}

701:デフォルトの名無しさん
07/05/15 01:45:03
戻り値void に 空return を、御丁寧につける必要なんてないだろ


そんなふうにかんがえていた時代もありました

702:デフォルトの名無しさん
07/05/15 01:50:35
すみません。PHPはC言語でできてるみたいですが、ソースないっすかね?

703:デフォルトの名無しさん
07/05/15 01:52:28
>>702
ここからどうぞ
URLリンク(www.php.net)

704:デフォルトの名無しさん
07/05/15 01:57:28
>>693
\0は八進法で値を指定するエスケープシーケースなのだから、
ASCIIでなくても'\0'は0に等しくて当然。

705:デフォルトの名無しさん
07/05/15 02:26:10
>>704
お前もわかってないアホだな。無駄口たたくな、自分の勘違いをさらすだけだから。
文字コードを表示するのに %d を用いている点が理解できてないな。

706:デフォルトの名無しさん
07/05/15 02:29:13
704 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 01:57:28
>>693
\0は八進法で値を指定する
\0は八進法で値を指定する
\0は八進法で値を指定する
\0は八進法で値を指定する

Wikipedia項目リンク
ん?八進法で値を指定?意味わかんねー。参考にできる文献やソースきぼんぬ。
文字コードの割り当てに何進法とか関係ないから。むしろ16進数にて対応コードを
示している文献はよく見かけるけど。

707:デフォルトの名無しさん
07/05/15 02:33:47
>>704
文字の終端を意味する \0(NULL文字、空文字)を入れたところにも
ちゃんとデータを格納するアドレスが存在しているって話だが?
なんかややこしくなっているが、 unko の後ろにNULL文字があるからといって
unko の後ろのアドレスがNULLになっているわけではないんだが・・・
その説明に何をわけの分からない説明にもならないことをいい掛かってきてんだね君は?
まさか、値は0だけどアドレスはなしとか書いちゃった赤っ恥>>580でつか?

708:デフォルトの名無しさん
07/05/15 02:34:46
>>706
「猫でもわかるC言語プログラミング」
これ読め


709:デフォルトの名無しさん
07/05/15 02:37:00
ぐぐったらこの154にほとんど似たような文句があった・・・
URLリンク(nssearch.hp.infoseek.co.jp)


710:デフォルトの名無しさん
07/05/15 02:40:51
580 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:13:10
>>572
正確に言えば 正確に言えば 正確に言えば 正確に言えば 正確に言えば
¥0  =値0 、アドレス無し ¥0  =値0 、アドレス無し ¥0  =値0 、アドレス無し

その後、文字の終端を意味するNULL文字の入ったデータに
前の文字列に続いてアドレスが割り振られていたことが
プログラムの実行にて証明されたため、赤っ恥をかいてしまったのであ〜〜る
あっ、ちなみに16進数で表示したかったら、%d から %x なり %X で指定してね♪

711:デフォルトの名無しさん
07/05/15 02:41:15
>>706
704じゃないけど
八進法で値を指定ってのはたとえば'A'=65(10進)=101(8進)だから
これを'\101'と表すって事では。

712:デフォルトの名無しさん
07/05/15 02:42:45
八進法 八進法 八進法 八進法 八進法 八進法 八進法 wwwwwww

713:デフォルトの名無しさん
07/05/15 02:44:06
酔ってんの?
素面でこれだったら怖いけど。

714:デフォルトの名無しさん
07/05/15 02:45:47
八進法、発進!ブ・ラジャー!

715:デフォルトの名無しさん
07/05/15 02:46:21
相手すんなよ・・・くだらん

716:ここでフレーム投下
07/05/15 02:48:41
cで10進定数の0を使いたいのですがどうしたらいいでしょう。
普通に0と書いたのでは8進定数になってしまいました。

717:デフォルトの名無しさん
07/05/15 02:49:34
単に順番にコードが割り当てられているのに、なぜか八進法wwwwww
何のために2進数、16進数があるか分かってないな、この八進法w
>>704
> ASCIIでなくても'\0'は0に等しくて当然。
これも意味が分からん。そりゃ何進法になっても0は0だが
そういうことをいってんじゃねーよ。\0が割り当てられている文字コードが0って話だろ。
ASCIIだからじゃなくて、ASCIIではそうなっていて、そのASCIIコードを参照できる
ソースコードを用いた説明で、なぁ〜〜に意見にもならないわけの分からない理論を持ち出してんだ?
\0 が 0 に等しい、だから何?そうじゃなくて、文字の終端を表す NULL 文字が入ったアドレスには
値に 0 が入っているのを敢えて参照して、ちゃんとNULL文字もデータとして格納されている
アドレスが割り振られているって話 な・ん・だ・がw

718:デフォルトの名無しさん
07/05/15 02:51:11
八進法必死だなw

719:デフォルトの名無しさん
07/05/15 02:52:18
16進数 → \x00
8進数 → \000

\0 は8進数の0だったんだよ。まあ同じ0だけどね。

720:デフォルトの名無しさん
07/05/15 02:52:22
消えろゴミめ

721:デフォルトの名無しさん
07/05/15 02:53:00
八進法、発疹!そりゃちゃいまんがなw

722:デフォルトの名無しさん
07/05/15 02:54:04
704 名前:デフォルトの名無しさん 投稿日:2007/05/15(火) 01:57:28
>>693
\0は八進法で値を指定するエスケープシーケースなのだから、
ASCIIでなくても'\0'は0に等しくて当然。

ASCIIとかじゃなくてNULL文字の入ったchar型のデータにどんな値が入ったかであって
値が入っているアドレスが存在するって話でしょ?ぶぅ〜〜ふふふふっ(吹いた)

723:デフォルトの名無しさん
07/05/15 02:55:45
ム板って何か些細なことに異様にこだわる人がいるよね。
やっぱ仕事のストレスなんだろうか。
SI業界で就活してたけどやめとこうかなあ…orz

724:デフォルトの名無しさん
07/05/15 02:55:51
>>716
0で始まる数字は8進数だよ。

int a = 090; とか書いてコンパイルしてみ、8進数に9という数字は無いからエラーになるよ

725:気まぐれアナスイ
07/05/15 02:56:14
Cの構成を考えていて、偶然にも、
driver.ができました。
『C言語なら俺に聞け』と
なっている位なのでそんな物は、
とっくにご存知なのでしょう、ね?

726:デフォルトの名無しさん
07/05/15 02:57:04
>>708
読む必要性なし、というか、ちゃんと八進法に関する文献やソースを分かりやすく
提示してもらえませんかねぇ?ASCIIじゃさまざまな文字が表現できないんで
いまさらASCIIだけにこだわる気はねーよ。文字コードで10進数以外だと
16進数で表記されているのをよく見かけるんですけどねぇ〜。どこでつか、八進法で
表記しているところは?なんで八進法?そんなんで表記したら、桁が多くなるものだと
10進法で表すより桁の数が増えて面倒なんすけど?

727:デフォルトの名無しさん
07/05/15 02:59:00
いったい何の議論をしているのかさっぱりわからんw

728:デフォルトの名無しさん
07/05/15 02:59:55
阿呆が喚いてるだけだろ。議論になんかなってないよ。

729:気まぐれアナスイ
07/05/15 03:00:24
>>725『続』
忘れていました、拡張子をなくしてもdriver、です。

730:デフォルトの名無しさん
07/05/15 03:00:36
いい加減秋田から、まとめとくね。NULL文字を入れたところにもアドレスは存在する。
勝手にNULLポインタにしちゃだめだぞ、めっ

731:気まぐれアナスイ
07/05/15 03:01:48
>>726
source.で作成したので厭です。

732:デフォルトの名無しさん
07/05/15 03:02:19
何でお前らそんなに喧嘩腰なの^^

733:デフォルトの名無しさん
07/05/15 03:03:30


734:デフォルトの名無しさん
07/05/15 03:05:25
>>708
>猫でもわかるC言語プログラミング
これは糞、ほかのをおすすめします

735:気まぐれアナスイ
07/05/15 03:06:23
>>726『続』
!(Φ_Φ+)
あ、number.を間違えてしまいました、失礼。

736:デフォルトの名無しさん
07/05/15 03:06:37
さぁ、みんなで八進法の文字コード対応表を表示させようじょのいこ!

#include <stdio.h>
int main(void)
{
int i,cnt;

for(i=32,cnt=0; i<127; i++,cnt++) {
printf("%c : %3d",i,i);
if(cnt%6==5) printf("\n");
else printf(" | ");
}
printf("\n\n魅惑の八進法!\n");
for(i=32,cnt=0; i<127; i++,cnt++) {
printf("%c : %3o",i,i);
if(cnt%6==5) printf("\n");
else printf(" | ");
}

return 0;
}

737:デフォルトの名無しさん
07/05/15 03:06:52
んじゃこないだ見かけた望洋のアレ

738:デフォルトの名無しさん
07/05/15 03:08:59
あっ、すまん、これも追加しといて

printf("\n\n平凡な十六進法!\n");
for(i=32,cnt=0; i<127; i++,cnt++) {
printf("%c : %X",i,i);
if(cnt%6==5) printf("\n");
else printf(" | ");
}

739:デフォルトの名無しさん
07/05/15 03:11:20
( ´ω`)

740:デフォルトの名無しさん
07/05/15 03:11:24
微笑ましいけど鬱陶しいなあw

741:デフォルトの名無しさん
07/05/15 03:12:29
天災と思って諦めてる

742:デフォルトの名無しさん
07/05/15 03:13:02
天才に向かって失礼な、めっ、めっめっ(猫をしかりつけるように)

743:デフォルトの名無しさん
07/05/15 03:17:53
カス

744:デフォルトの名無しさん
07/05/15 03:18:01
ハゲ

745:デフォルトの名無しさん
07/05/15 03:26:25
ナルはナルシストのナルさぁ〜、決して成瀬川なるのなるではない。

746:デフォルトの名無しさん
07/05/15 03:26:33
(´ω`)

747:デフォルトの名無しさん
07/05/15 03:30:52
なんか変な方向に行ってるみたいだな。

1. ヌル文字の値が '\0' なのは規格で決まってる。

2. \0 という特別なエスケープシーケンスは規格で用意されておらず、
  これは 8 進数の値を直接埋め込むエスケープシーケンスでしかないので、
  '\0' の値はどの環境でも厳密に 0 になる。
  (そもそもそんな特別なエスケープシーケンスを用意してしまったら、
  8 進数で 0 を埋め込むことが不可能になってしまう)

これでいいだろ、もう。

748:デフォルトの名無しさん
07/05/15 03:35:06
>>747
だからぁ、NULL文字もちゃんとデータとして存在しているから
文字の終端を示す\0が入っているアドレスもちゃんと存在しているって話なんだが?
規格がどうとかじゃなくて、空文字でNULLが扱われていてもちゃんと文字データとして
存在して実態があるからNULLポインタの示す場所と勝手に解釈するなって話ナノーメートル

749:デフォルトの名無しさん
07/05/15 03:36:40
アドレスがあるのは当たり前だろ。

750:気まぐれアナスイ
07/05/15 03:37:54
!(Φ_Φ+)
頑張っていますね?
source.を書きたい、のですが、
original.なのでとって置きます。


751:デフォルトの名無しさん
07/05/15 03:39:07
あと、NULLポインタが示すオブジェクトに対してデータを表示させようとかするのは
どうも過去ログからしてタブーっぽい。指し示す場所がないゆえに、環境によっては
(null)とご丁寧に表示してくれているが、実体がないから何も表示できないのが当たり前だし。

752:デフォルトの名無しさん
07/05/15 03:42:19
>>748
うーん、「NULL」が出てきたら脳内で「NULLポインタ」に置換しちゃう人?
>>747は全くNULLポインタについて言及してないよ。

だけどまあ、NULL文字ってのは誤解しやすいような気もするから、
終端文字と表現するのがいいんじゃねえのかなあ。

753:デフォルトの名無しさん
07/05/15 03:44:13
NULL ポインタは参照しちゃいけない。
「あらゆる有効なアドレスと比較しても等しくならない」のが NULL ポインタの定義だから。

ただ、NULL 渡して表示させるという場合、
内部でポインタが NULL ならこれを表示・・・という分岐があるのなら問題ない。
参照してないから。

754:デフォルトの名無しさん
07/05/15 03:44:21
彼は自分の知らないことに話が展開していくのを怖がってるんですよ

755:デフォルトの名無しさん
07/05/15 03:45:04
おまいらほんっとにナルちゃんが好きなんだね ♥

756:デフォルトの名無しさん
07/05/15 03:45:50
NULL 文字という表記は良くない。
NULL はヌルポインタを表すマクロ名を表すから、紛らわしい。
null 文字という風に小文字で書くならいい。

757:デフォルトの名無しさん
07/05/15 03:45:50
>>749
いや、だからそれを勘違いしたのが >>580 なんだが、お前いい加減にしろ?
何歳だ?ゆとり教育世代か?寝ろやボケガキ

758:デフォルトの名無しさん
07/05/15 03:46:38
>>580 みたいな無茶苦茶なのは、既に訂正するとかそういうレベルじゃないな。

759:デフォルトの名無しさん
07/05/15 03:46:39
>>754
はいはい、すでに話がわかっているという証拠のソースも何度も提示しているのに
それすら自分の思い込みや勘違いで否定しているお前が論破されるのが怖くて
何も筋の通った意見がいえなくておびえているのはお前だろ?

760:デフォルトの名無しさん
07/05/15 03:46:51
表記の問題じゃない

761:デフォルトの名無しさん
07/05/15 03:47:37
怖がりすぎ

762:デフォルトの名無しさん
07/05/15 03:49:02
「彼」って自分の事だと思ったの?
自覚してんのだなぁ。

763:デフォルトの名無しさん
07/05/15 03:49:15
>>752
> >>747は全くNULLポインタについて言及してないよ。
いや、モロ最初の項目で
> 1. ヌル文字の値が '\0' なのは規格で決まってる。
言及してんじゃん。だから、NULL文字の値が\0とか話ではないが
値は \0 ではなく 0 だが?それすら間違ってんじゃん。
あくまでもエスケープシーケンス、 printf(""); の " " の中で使うときとかで用いられる
\n \t のように \ がついたものは値じゃないんだが?w

764:デフォルトの名無しさん
07/05/15 03:50:55
んで、ことの本質は >>580 にある \0 あるいは NULL文字データが入っているところにも
ちゃんとアドレスが文字列の終わりに続いて割り振られているって説明に、なぁ〜〜に
ごちゃごちゃとわけのわからない言い掛かりをしてきているんだね?って言っているんだが?
いや、もうええわ。八進法とかわけのわからん話を絡めるし、気持ち悪いぜ?

765:デフォルトの名無しさん
07/05/15 03:53:08
>>763
だからそこのどこにNULLポインタが出てくるの?

766:デフォルトの名無しさん
07/05/15 03:53:16
NULL
ヌルポインタを表す単なるマクロ。
C では 0 あるいは ((void*)0) と定義される。

'\0'
ヌル文字。値の全てのビットが厳密に 0 となると規格で決められている。
この表記の場合、型は C では int 、C++ では char 。

0
数値の 0 でもあり、ヌルポインタでもある。
型は int ではあるが、値 0 になる定数式がポインタに代入された場合、
あるいはポインタと比較された場合は、ヌルポインタと解釈される。
その場合、その値のビットが全て 0 になるという保証はない。

767:デフォルトの名無しさん
07/05/15 03:53:19
日本語でおk

768:デフォルトの名無しさん
07/05/15 03:54:30
> 1. ヌル文字の値が '\0' なのは規格で決まってる。
全くNULLポインタには言及してないんだよ。

769:デフォルトの名無しさん
07/05/15 03:55:13
ヌル文字とヌルポインタは全くの別物ってのが分かってないのかねえ。

770:デフォルトの名無しさん
07/05/15 03:56:34
>>763
分かってない奴がでしゃばるな

771:デフォルトの名無しさん
07/05/15 03:58:03
あたいのこと、舐めたらいかんぜよ。
ちなみに \a \n \t \0 だのは文字であって値ではありませんので、あしからず。
それらを示す文字コードは値といってもまぁ差し支えないかもしれんけどね。
んじゃ、レベルの低い知ったかを相手にするのもここらでやめておいてやるわ。
まったく、本当に理解力のないどうしようもないやつっているんだなw
だからこの世はいつまでも頭の悪い奴が立場が悪くなってファビョって自暴自棄になるんだなw

772:デフォルトの名無しさん
07/05/15 03:59:23
>771
自己紹介乙

773:デフォルトの名無しさん
07/05/15 03:59:46
C++ の規格票(しかも 1998 年のドラフト)ですまんが、

null character (respectively, null wide character), whose representation has all zero bits.
ヌル文字(あるいはヌルワイド文字)、これは全てのビットが 0 の表現をとる。

>>771
\0 は文字だが '\0' は値だぞ。

774:デフォルトの名無しさん
07/05/15 04:00:23
ということで



  NULL文字をNULLポインタと思いこんで延々暴れたバカがいた



ということでよいかな。まあ紛らわしいからその分は差し引いてあげるけどさ。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5223日前に更新/240 KB
担当:undef