トップページ⇒tech
1001コメント293KB

C言語なら俺に聞け(入門編)Part 104

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん2012/07/15(日) 10:28:33.18
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 103
http://toro.2ch.net/test/read.cgi/tech/1341059858/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 158代目
http://toro.2ch.net/test/read.cgi/tech/1339338438/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
http://codepad.org/
http://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0809デフォルトの名無しさん2012/08/04(土) 12:21:44.96
>>808
ttp://ideone.com/NioEX
0810デフォルトの名無しさん2012/08/04(土) 12:22:28.20
text[i]
0811デフォルトの名無しさん2012/08/04(土) 12:30:33.38
>>809-810

ありがとうございます!!!!!!!!!
こんな単純なことすら思い付かない自分が悔しいですorz
C言語なんてものに向いていないのかもと不安ですが、これからがんばってみます!!
またよろしくおねがいします!
0812デフォルトの名無しさん2012/08/04(土) 12:41:14.67
最初はみんなそんなもんだ。
習うより慣れろ。
バッドで100回素振りしたらそのうちヒットもでるさ。
それと同じ、何回コーディングしたかの違い。
不安なんて関係ないよ、丸写しでもいいから書いて
分からない部分を調べるかヘルプで読むだけの話。

書く、調べる、覚える。 これを繰り返すか繰り返さないかの差でしかない。
0813デフォルトの名無しさん2012/08/04(土) 14:07:08.30
ほっこりした。
0814デフォルトの名無しさん2012/08/04(土) 14:41:34.72
1
毎日、暗記するくらい手引書読む
何ページに何が書いてあるか覚えたら卒業
2
1で分からない部分を解説してあるサイトやら本を暗記するくらい読む
3.
難しい部分はとりあえず置いて理解出来るコードをひたすら書く
4.
ちょっとだけ難しいコードを混ぜて覚える

以下ループ
そうやってみんな中級者になっていく。

上級者になると言語の仕様書が頭の中に入ってる。
やってることは初心者の頃と同じ。1-4の反復
08154332012/08/04(土) 15:10:11.10
みなさんのお力をお借りさせてください。

void Object ()
{
if ( switch_01 == 1 )
{
/* 構造体変数の宣言 */
struct s_int iobject ; // iobject


/* 構造体変数の初期化 */
// iobject.index = "1" ; // char型の文字代入ができない問題
iobject.x = 112 ;
iobject.y = 96 ;

switch_01 = 0 ; // 初期化スイッチを切る(0がOFF) これでもうこの処理には入らない
}


DrawGraph ( iobject.x , iobject.y , SPRITE [ 0 ] , TRUE ) ; // キャラクターを表示する
}

構造体変数の利用についてです。コメント等は読み飛ばして〜〜〜〜!
これで最後のDrawGraph(すいません。不可解な単語は全部ルーチン名です)の引数[iobject.x,iobject.y]が定義されていない、とコンパイラ君に言われるのですが、構造体変数って同じ階層で定義してその階層でしか参照できないのでしょうか?
ifを使わずに同じ階層で処理を実行すると普通にコンパイルを通過できたので…。この辺りのルールがCの教科書には載っていません><;

ちなみに構造体データ型定義は別で行っています。switch_01は変数ですが、if文内の処理が初期化の処理で1度だけ実行したかったのでフラグ的な役割をしているだけです。(これらは別にどうでもよかったf^^;
0816デフォルトの名無しさん2012/08/04(土) 15:12:37.42
>>815
>構造体データ型定義は別で行っています。
そのファイルをincludeしなきゃだめだよ
0817デフォルトの名無しさん2012/08/04(土) 15:13:12.72
s_intの定義はどうなってる?
0818デフォルトの名無しさん2012/08/04(土) 15:14:44.26
char* plist[] = {"aaa", "BBB", "ccc", "DDD", "eee", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

文字列のソートするプログラム書こうとして文字列の配列を作ろうとしたんだけど
char* plist[]ってことは添字なしだと char** plistになるのかな?

かといって↓のようにすると、その後上手く使えなくなって頭がドーン
char** pplist = {"aaa", "BBB", "ccc", "DDD", "eee", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

なんでこうなるの?
0819デフォルトの名無しさん2012/08/04(土) 15:16:02.66
// iobject.index = "1" ; // char型の文字代入ができない問題
0820デフォルトの名無しさん2012/08/04(土) 15:17:19.80
>その後上手く使えなくなって
下手になら使えるのか。 問題ないじゃん
08214332012/08/04(土) 15:22:51.45
>>819
すいません。それは関係ないやつですf^^;ポリポリ

>>817
struct s_int {
char index ;
int x ;
int y ;
} ;

になってます。(ソースファイルの先頭に記述済み)

>>816
同じファイル内に定義済みです。。。


すいません。今ちょっとDrawGraphの直前に
struct s_int iobject ;
を入れたんですけどコンパイルしたら

Run-Time Check Failure #3 - The variable 'iobject' is being used without being initialized.

こんなダイアログが出ました。エラーなのでしょうが内容が分かりませんんんんん
0822デフォルトの名無しさん2012/08/04(土) 15:26:53.40
iobject.index = "1";
↓
iobject.index = '1';
0823デフォルトの名無しさん2012/08/04(土) 15:27:35.80
文字と文字列の違いもわかってないのか
08244332012/08/04(土) 15:34:26.13
>>822
ぎゃああああああ
ってな感じです。。。凡ミスワラタw

アリガトゴザイマス(´・ω・`)
0825デフォルトの名無しさん2012/08/04(土) 15:51:43.11
>>814
私はちょっとだけ順番違うかな。

1 まず、したい事がある。
2 その事を実現する方法についてのみ調べる。(手引書、参考書、サイト)
3 コードを書いてみる。
4 その後で、手引書、参考書、サイトをじっくり読む。
5 3のコードを改造してみる。

そんで、3-5のループって感じかな。

もちろん、初めに言語の仕様をだいたい知っていることに越した事はないんだけどね。
0826デフォルトの名無しさん2012/08/04(土) 15:59:58.54
>>825
俺もそんな感じ
0827デフォルトの名無しさん2012/08/04(土) 16:11:17.13
>>825
それだと
モチベは保てる利点があるが
やりたい内容が力量を越えて飛躍しすぎてると頭がオーバーフローし易いので
挫折する可能性もある。

反面、>814だとモチベが持続出来ないのでブン投げる可能もある。
モチベを保つために練習問題をコツコツやらないと厳しい。

コードを書いて前回より出来が良い物に改善、出来る範囲の文献を当たって
β0.01からβ0.02へ進化!手直し手直しを繰り返すのが良いとこ取りかもしれないね。
無理せずにコツコツと手直しが近道かもしれんね。
0828デフォルトの名無しさん2012/08/04(土) 16:47:35.58
>>825
今だとgoogleでこの手順もかなり楽になった
検索すると困ってる内容の解決策に簡単にたどり着ける
0829デフォルトの名無しさん2012/08/04(土) 16:53:12.03
若い頃はモロ >>814 つーか 4. で無謀なチャレンジを楽しんでいた
今 >>825 へ徐々に移行、6. ありえないポカで自己嫌悪を追加
0830デフォルトの名無しさん2012/08/04(土) 17:13:03.30
>>818
ttp://ideone.com/sQD0C
0831デフォルトの名無しさん2012/08/04(土) 17:13:20.34
>>825の人気にshit
おれもこの方法だけど
0832デフォルトの名無しさん2012/08/04(土) 17:26:26.71
>>815
ttp://ideone.com/eYVNF
0833デフォルトの名無しさん2012/08/04(土) 17:33:10.73
>>818
ttp://ideone.com/8Y3XU
0834デフォルトの名無しさん2012/08/04(土) 17:39:05.12
つまり

int main(int argc, char *argv[]);
int main(int argc, char **argv);

が等価であるからといって

char *plist[] = {"foo", "bar"};
char **plist = {"foo", "bar"};

が等価にはならない
0835デフォルトの名無しさん2012/08/04(土) 17:41:37.11
等価であるべきだとすごい剣幕で主張してるアホが昔いた
0836デフォルトの名無しさん2012/08/04(土) 17:46:29.89
 __           た わ し で す           --
     二          / ̄\           = 二
   ̄.            | ^o^ |                 ̄
    -‐           \_/                ‐-
0837デフォルトの名無しさん2012/08/04(土) 18:07:49.79
>>830
>>833
>>834
ありがとうごじゃいます

char *plist[] = {"foo", "bar"};
char **plist = {"foo", "bar"};

これが等価だって思い付きが大間違いだったんですねorz
08388252012/08/04(土) 19:28:06.02
知らないうちに結構レスがついている。

ちなみに40代のおぢさんです。
ポンコツだけど。。。。

ただ、1の「したい事がある」は「お仕事でやらないといけなかった」ともいう。
そして、 2の調べるは、そんな人が作ったPGを引き継いだ人が大変なのは分かっていたから、当時はサイトが無かったので必死に参考書を読み漁っていた。

最初の入門書は林春比古さんの新C言語入門シリーズだったかな。(1991年版・今は新しいのが出てるはず)
未だにシニア編は手放せないです。
ビギナー編はどうでも良かったからどっかいっちゃったし、応用編は当時のDOS環境に偏り過ぎていたからね。

オライリーシリーズはポンコツには敷居が高かった。

って感じかな。
0839デフォルトの名無しさん2012/08/04(土) 19:33:14.45
林春比古の本に手をだしてはいけませんキリッ
08408252012/08/04(土) 19:54:02.56
>>839
正直、他のシリーズの本(C++とかVBとLinuxとか)は知らないんだけどね。
Javaだけはちょっと読んだけど、Java自体、言語と言うより、「如何に用意されたAPIを使いこなすか」で、
しかもJavaのバージョンが上がりまくってAPIが変わりまくりだったので意味をなさなかったね。
持ってるのVer1.3対応版だよ。まったく意味がない。

C言語入門にしては当時(1990年頃)としては分かり易かったと思う。
今なら他にもいっぱいあると思うけど。
0841デフォルトの名無しさん2012/08/04(土) 21:10:55.96
初心者ならここじゃないの。副読本の感覚で
http://www9.plala.or.jp/sgwr-t/index.html
ポイント学習C言語

中級には物足りなすぎるだろうけど
初心者には孫の手みたいに痛し痒しに届きそうな内容じゃない。

この人の本は持ってないけどね・・どうなんでしょ。

あとは猫シリーズのWinプログラムやっとけば初級卒業なんじゃないのかな。

オライリーが鉄板だとは思うがあれ楽勝で読みこなせるなら初心者じゃない気もするw
0842デフォルトの名無しさん2012/08/04(土) 21:20:59.81
写経して即デバッガで追うのは楽なんだけど、時間が無い人向けだな。
0843デフォルトの名無しさん2012/08/04(土) 21:57:11.99
猫わかもいいんだけどちょっと古臭いのがね
0844デフォルトの名無しさん2012/08/04(土) 22:05:21.58
あれは猫ならわかるのかもしれんが、人間だとわからんのでは?
少なくとも俺は柴田望洋のほうがわかり易かったよ
0845デフォルトの名無しさん2012/08/04(土) 22:05:48.79
うん
0846デフォルトの名無しさん2012/08/04(土) 22:39:17.97
独習Cだろ最強は
0847デフォルトの名無しさん2012/08/04(土) 22:58:50.44
図書館で借りた入門書に誤字があり、その箇所で悩みまくり頭が沸騰するかと思った。
初心者だから自分が間違っているのか本が間違っているのか分からないから困る
0848デフォルトの名無しさん2012/08/04(土) 23:13:11.49
困るね
0849デフォルトの名無しさん2012/08/05(日) 00:00:44.45
読んで覚えるだけの勉強しかしないバカにありがちだね
0850デフォルトの名無しさん2012/08/05(日) 00:03:30.81
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< オマエモナー
  (     )  \_____
  │ │ │
  (__)_)
08516852012/08/05(日) 01:58:36.19
>>847
自分でうごかしてみるんだ。今は環境は簡単に手に入る。
0852デフォルトの名無しさん2012/08/05(日) 04:42:27.49
コンパイル環境あったところで、誤字が理由のエラーに悩みまくることはかわらないけどな
0853デフォルトの名無しさん2012/08/05(日) 04:45:35.54
昔よりはエラーメッセージが親切になった

何といっても読めば意味が分かることが多い
0854デフォルトの名無しさん2012/08/05(日) 04:57:34.33
開発環境やバージョンの違いで動かないこともあったりするから
手に負えない。
0855デフォルトの名無しさん2012/08/05(日) 05:05:20.29
初心者がエラーメッセージをちゃんと読んで理解するかよw
08566852012/08/05(日) 05:24:21.33
>>855
ここに投げてみるとか、codepad/ideone の結果を貼り付けてみるとか。
初学者のはまる点であれば、ここでなんとかなるんじゃない?
0857デフォルトの名無しさん2012/08/05(日) 05:35:40.54
>>639
>>643
0858デフォルトの名無しさん2012/08/05(日) 06:09:52.40
しかし初心者ほど「エラーが出ます」としか言わないのであった
0859デフォルトの名無しさん2012/08/05(日) 06:33:42.02
C++のテンプレートとかエラーメッセージ自体が意味不明だったりするけど
0860デフォルトの名無しさん2012/08/05(日) 06:34:54.30
初心者の独学の話をしてるんじゃないの?
0861デフォルトの名無しさん2012/08/05(日) 06:36:02.61
ttp://ideone.com/XY4SB
初心者によくありがちなコンパイルエラー
0862デフォルトの名無しさん2012/08/05(日) 07:34:32.47
>>861
ねぇよ
0863 ◆QZaw55cn4c 2012/08/05(日) 09:45:29.15
>>857
これは痛いところを突かれましたね。

確かにhttp://codepad.org/mDg8Dx8Pは今でも説明不能。
手元のgcc4 は 0. 000000 を表示することから >>653 + double拡張が妥当ではあるのですが、
それじゃcodepad はどんなことになっているのか?
0864デフォルトの名無しさん2012/08/05(日) 10:13:57.76
%fで8バイト必要なのに4バイトしか積んでないから
つまり>>663の4番目と6番目
0865デフォルトの名無しさん2012/08/05(日) 10:24:52.91
% よりも - の方が優先順位が高いので

10 % 3 - 1.0 < 4.0 ? 1 : 0;

は

10 % (3 - 1.0) < 4.0 ? 1 : 0;

と解釈され、剰余演算子にdouble型を適用しようとするので
コンパイルエラーになるはずなんだけどなあ
0866 ◆QZaw55cn4c 2012/08/05(日) 10:41:02.47
>>864
なるほど、いったんスタックをお掃除すると結果がかわるというわけですね。
>663 を codepad にかけてみました。
http://codepad.org/HIVDpg5z

1番目の結果を出すとき、ゴミはいったいなんなんだ?
0867デフォルトの名無しさん2012/08/05(日) 10:48:07.87
>% よりも - の方が優先順位が高いので
単項演算子の-と二項演算子の-との区別がつかないおバカさん?
0868デフォルトの名無しさん2012/08/05(日) 10:56:01.96
printf("%f\n", 10 % 3 - 1.0 < 4.0 ? 1.0 : 0.0);

とするとちゃんと1.000000と表示される所から見て、整数→倍精度浮動小数点数
への格上げはされてない(当たり前か)
0869デフォルトの名無しさん2012/08/05(日) 11:22:28.30
ttp://ideone.com/asu0T
printf()を連続で呼ぶと前の引数が残るからアクロバティックなコーディングが出来る
やらないけど
0870デフォルトの名無しさん2012/08/05(日) 11:27:22.05
>>866
ttp://codepad.org/tqrPGZ55
0871デフォルトの名無しさん2012/08/05(日) 11:33:13.47
>>869
これアクロバティックと言わずに「undefined」と言おうよ

>>870
intでdouble型の表示をしようとすると結果はやはり「undefined」だろうな

printf("%f\n", 1); とやってるのと同じだもん
0872デフォルトの名無しさん2012/08/05(日) 11:51:59.18
そういえばDOSの時代に関数ポインタを取得して、そこにディスク上から別の関数を
上書きして走らせるというキチガイ沙汰なプログラムが立派に商用に使われていたな

もちろん後から上書きする関数の大きさは前の関数よりもサイズが小さくないと
次の関数の頭まで消してしまうし、引数も同じにしとかないとコンパイルが出来ない

これも未定義なんだけど、メモリの少ない時代は仕方がなかったんだろうな
0873デフォルトの名無しさん2012/08/05(日) 11:54:53.01
union
{
char c[8];
double d;
} u;
u.c[0] = 0x66;
u.c[1] = 0x68;
u.c[2] = 0x3c;
u.c[3] = 0x11;
u.c[4] = 0xc4;
u.c[5] = 0x59;
u.c[6] = 0x01;
u.c[7] = 0x40;
printf("%f\n", u.d);
u.c[0] = 0x00;
u.c[1] = 0x00;
u.c[2] = 0x00;
u.c[3] = 0x00;
printf("%f\n", u.d);
0874デフォルトの名無しさん2012/08/05(日) 11:58:44.74
>>872
メモリの無い時代、別にオーバーレイは常套手段だったろ。
0875 ◆QZaw55cn4c 2012/08/05(日) 12:35:11.54
>>870
おおー、thx
このやりかた、デバッグにつかえるかもしれないね
0876デフォルトの名無しさん2012/08/05(日) 12:36:40.22
条件A, B, Cそれぞれにture falseがあり、条件の組み合わせで
それぞれに違う処理をさせたい場合、どういった書き方をするんでしょうか
真理値表で言うとこんな感じです
A B C
F F F -> n = ture
F F T -> m = ture
F T F -> l = true
<略>
T T T -> s = true
ifを使って、
if (a == false) && (b == false) && (c == false)
{
...
などと書くのが普通でしょうか。コレだと条件がD, E, ...と増えていくと
収集がつかなくなりそうで不安です。いい方法か、検索に役立つキーワードが
あれば教えて下さい。
0877デフォルトの名無しさん2012/08/05(日) 12:43:11.67
ビットフラグ
0878デフォルトの名無しさん2012/08/05(日) 13:13:19.18
関数型言語ってCの事ですか?
0879デフォルトの名無しさん2012/08/05(日) 13:18:05.02
Cは手続型言語
08804332012/08/05(日) 13:23:49.15
>>832
832さんありがとうございます!
そのページのソースコードに記述されているstatic(きおくくらす?で合ってるのかな…?)をヒントにコンパイルエラーの謎を解明できました。
具体的な原因としてObjectルーチンを何度も通すプログラムを書いており、

struct s_int iobject ;

という構造体変数宣言を何度も行っている事が原因だったようで、これをヘッダー部分(main()以前)に書く事でコンパイルが正常に通りました。
またひとつ勉強になりました。ありがとうございますm(--)m
0881デフォルトの名無しさん2012/08/05(日) 13:39:50.96
どういたしまして
0882デフォルトの名無しさん2012/08/05(日) 13:47:48.09
>>880
ttp://ideone.com/mZwCB
自動変数というのは自動的に領域の確保と解放をする変数で
初期化(あるいは代入)せずに参照すると値が不定となる

自動変数ではなく静的変数とするにはstaticを付けるかグローバル変数とする
0883デフォルトの名無しさん2012/08/05(日) 14:56:49.16
ズルして楽して覚えても結局は言語仕様に戻る罠。
面倒でも暇を見てヘルプや仕様を読む癖をつけるのが良いと思うよ。
0884デフォルトの名無しさん2012/08/05(日) 14:57:59.08
>>876
いろいろやりかたはあるが、条件を表にしておき関数ポインタを持っておくとか

オートマトンで使われるような状態遷移図にも似たような手法が使われる
0885デフォルトの名無しさん2012/08/05(日) 15:29:21.79
#include <stdio.h>

#define _TRUE 1
#define _FALSE 0

int fff(void) { printf("%s\n", __func__); }
int fft(void) { printf("%s\n", __func__); }
int ftf(void) { printf("%s\n", __func__); }
int ftt(void) { printf("%s\n", __func__); }
int tff(void) { printf("%s\n", __func__); }
int tft(void) { printf("%s\n", __func__); }
int ttf(void) { printf("%s\n", __func__); }
int ttt(void) { printf("%s\n", __func__); }

int (*tbl[2][2][2])(void) ={
  { { fff, fft }, { ftf, ftt }, },
  { { tff, tft }, { ttf, ttt }, },
};

int main(void){
  (*tbl[_FALSE][_FALSE][_FALSE])();
  (*tbl[_FALSE][_FALSE][_TRUE])();
  (*tbl[_FALSE][_TRUE][_FALSE])();
  (*tbl[_FALSE][_TRUE][_TRUE])();
  (*tbl[_TRUE][_FALSE][_FALSE])();
  (*tbl[_TRUE][_FALSE][_TRUE])();
  (*tbl[_TRUE][_TRUE][_FALSE])();
  (*tbl[_TRUE][_TRUE][_TRUE])();
  return 0;
}
0886デフォルトの名無しさん2012/08/05(日) 15:29:52.05
lenovo@LENOVO-0C414D26 ~
$ ./a.exe
fff
fft
ftf
ftt
tff
tft
ttf
ttt
08874332012/08/05(日) 17:00:58.51
>>882
自動変数と静的変数というのは一般的に言われる「変数」を噛み砕いたものという事でしょうか?

初期化しないままに参照するのは結果的にエラーを吐くのは分かったのですが、
初期化したものをその後に参照しようとしても参照できない場合があるのはなぜなのでしょう

やはりCの仕様なんでしょうか…
0888デフォルトの名無しさん2012/08/05(日) 17:11:38.25
アドレスが違うか見てみれば
0889デフォルトの名無しさん2012/08/05(日) 17:13:28.31
"スコープ"とか"変数の寿命"でググれや
0890デフォルトの名無しさん2012/08/05(日) 17:54:40.51
>>887
ttp://ideone.com/xmVR8

>自動変数と静的変数というのは一般的に言われる「変数」を噛み砕いたものという事でしょうか?
変数には大雑把にいって自動変数と静的変数がある

>初期化したものをその後に参照しようとしても参照できない場合があるのはなぜなのでしょう
初期化したつもりで自動変数を初期化してなかったので
「変数'iobject'が初期化されてないのに使われようとした」というエラー(警告?)になったのだと思われ

Run-Time Check Failure #3 - The variable 'iobject' is being used without being initialized.
08914332012/08/05(日) 18:16:14.23
返答早すぎですw多くのレスありがとうございます><
まだC言語は半月くらいの経験しかない身ではしたない部分があるにも関わらず多くアドバイスを頂き感謝し尽せないです。。。

>>890
初期化した場所が悪かったのか、初期化した後変数が別の変数に変わってしまったのか分かりませんがエラーの内容からすれば変数の初期化をする場所にルールがあるんじゃないか、とちょっと気づいてきました…(´・ω・`)

>>889
ブロックスコープという存在を知らなかった…orz
しかも私が今併用しているC言語入門書には書いていない件(tyow

>>888
ポインタですね^^
後々解析してみまぁす。ありがとうございます〜

皆様、貴重なご教示ありがとうございました。
0892デフォルトの名無しさん2012/08/05(日) 18:32:40.71
>>891
http://www9.plala.or.jp/sgwr-t/index.html
08938762012/08/05(日) 18:36:50.41
>>877, 884様
とりあえず今回は3条件T/Fで設計してしまったので、
ビットフラグで行こうと思います。
検索したらUMLとか状態遷移とかを解説しているページが
多く見られ、大変参考になりました。ありがとうございました。
0894デフォルトの名無しさん2012/08/05(日) 18:45:27.84
はじめまして。
<=====の行がうまくいかないです。アドバイスお願いします。

int *po,ban,i;
po=&ban;
for(i=0;i<5;i++){
*(po+i)=i; /*<=====*/
}
0895デフォルトの名無しさん2012/08/05(日) 18:51:18.64
とりあえず、がんばれ、と言っておこう
0896デフォルトの名無しさん2012/08/05(日) 18:56:35.63
>>894
ttp://ideone.com/g4bsT
0897デフォルトの名無しさん2012/08/05(日) 18:56:57.06
はじめまして。
<=====の行がうまくいかないです。アドバイスお願いします。

int *po,ban,i;
po=&ban;
for(i=0;i<5;i++){
*(po+i)<=====i;
}
0898 ◆QZaw55cn4c 2012/08/05(日) 19:08:48.26
>>894
http://ideone.com/cV82Z
0899デフォルトの名無しさん2012/08/05(日) 19:20:02.69
>>896
>>898
banを配列にしないとダメなんですね。
サンクス
0900デフォルトの名無しさん2012/08/05(日) 19:29:40.53
自動変数は何が自動なんですか。手動変数もありますか。
0901デフォルトの名無しさん2012/08/05(日) 19:30:21.98
ぽいぽいPOI!!!
ふぉいふぉいFOI!!!
カネ返せFOI!!!
カネ返せPOI!!!
0902デフォルトの名無しさん2012/08/05(日) 19:34:03.62
全自動変数
半自動変数
手動変数
0903デフォルトの名無しさん2012/08/05(日) 19:41:31.07
変数がメモリ上のどこにあるのかを考えろよw
答えはそこにある。
0904デフォルトの名無しさん2012/08/05(日) 19:46:12.93
変数
固定変数
変動定数
定数
0905デフォルトの名無しさん2012/08/05(日) 21:09:56.68
ふひひ
0906デフォルトの名無しさん2012/08/05(日) 23:53:22.62
このスレ質問ても処理系は何?と聞いてごまかして答えてくれないよね。
専門知識を教えるのは億劫なんかね。
0907デフォルトの名無しさん2012/08/05(日) 23:56:26.74
質問ても?
0908デフォルトの名無しさん2012/08/06(月) 00:00:50.30
>>907
ゴミは黙れ
レス数が900を超えています。1000を超えると表示できなくなるよ。