Cプログラミングのポインタの説明が必要

G

glenjoy

Guest
私は起こったどのように説明が明確なこのprblem発生の本Cの方法があるプログラムは、あまりにも悪い。

ここではコードです:

コード:#は<stdio.h>含まれてint型のmain()

(文字文[80];

ボイド逆(const char *をのconst);のprintf("1行のテキストを入力してください:¥¥ n");

取得(文);のprintf("¥¥ nこの行印刷後方れます:¥¥ n");

(文)逆;戻り0;)ボイド逆(const char *をのconstのsPtr)

((sPtr場合[0] =='¥¥ 0')

戻り値;



((&sPtr [逆1]);

(sPtr putchar [0]);))

 
"トリック")は(逆に再帰的に行われて呼び出しの;])各1 [時間をそれが呼ばれる、行の"逆(&sPtrの、"再帰ポインタによる実行インクリメントします。したがって、最初の呼び出しは逆に()が印刷を開始最後の文字のように。

のためにあるタイプはそのanswareを探しているあなたは?

Regars、

dpsm

 
dpsmanは書き込み:

"トリック"は逆の再帰呼び出し()で行われる、それは、行"逆(&sPtr [1])と呼ばれるたびに、"ポインタによる再帰のインクリメントを実行します。
したがって、最初の呼び出しは逆に()が印刷を開始最後の文字のように。そのanswareのタイプあなたが探しているか?Regars、dpsm
 
ポインタの値はアドレスです。

ていると仮定するとあなたは
const char *を文="abは¥¥ 0";

これは言っていると同じ
文が[0] ='';
文は'[1] ='例えばb [;
文は[2] ='¥¥ 0';

今、我々が使用して
const char *をsentence1 =&文[1];
これは言っていると同じ
sentence1 [0] ='b';
sentence1 [1] ='¥¥ 0';

今、我々が使用して
const char *をsentence2 =&sentence1 [1];
これは言っていると同じ
sentence2 [0] ='¥¥ 0';

今、呼び出される関数が、以前の逆に、関数を返す条件が満たされます。次の行と呼ばれる0要求のsentence1 [する]印刷される前の逆関数とに戻ります。巣の線が再び機能¥を要求する文のメインから呼び出された、呼び出しを返す非常に最初の逆関数[前に印刷される[0]を。

希望はこれで十¥分はっきりしている。

 
こんにちはglenjoy、

私は行を考えて、この記述は、必要があります")逆(const char *をconstを無効に、"関数の前にメイン。

regrads、

 
asahin11は書き込み:

こんにちはglenjoy、私はあなたがこの行を書くすべきだと思う")逆(const char *をconstを無効に、"main関数の前に。regrads、
 
こんにちは、
Dpsmanの&チェックメイトの答えが正しいことを確実に。まず最初に:私は走ったことは&次の変更しようとする実行コードをした。

1。コード:

ボイド逆(const char *をのconst);
 
何の意味)です、そのプログラムor(停止機能¥は、でwrt_it; and putchar実行できませんでした(℃);したら、いつ'¥¥ n'が検出された、in stack待っているエントリポイントfor全部またはsuspended機能¥しますputcharエントリポイントをでている(ウ);?

右はありますかこれは?

多くの非常にありがとうを。

 
引用:

すべての機能¥を停止またはputcharでのエントリポイントを持って、スタック内のを待ってのエントリポイント(ウ);?
 
最初のプログラムの開発作業を同じことのように、この場合、可能¥性はない変数を持っていない定数:

-------------------------------------------------
#は<stdio.h>含まれて

ボイド逆は(char *);

int型のmain()


文字文[80];

のprintf("テキストの行をを入力します:¥¥ nを");
取得(文);

のprintf("¥¥ nこの行印刷後方れます:¥¥ n");
)逆(文;

[取得(&文0]);
戻り0;


ボイド逆(char *文字sPtr)


場合)(※sPtr =='¥¥ 0'
戻り値;



逆( sPtr);
putchar(*-- sPtrを);



-------------------------------------------------
たぶんこれはあなたを助けます。

 
m_t_blindは書き込み:

引用:

あなたの最初のプログラムの開発は、この同じ作業を行うようにすることが一定の変数を持っていない場合。
 
amraldoは書き込み:

のconst修飾子は、完全にeneterd scentenceを保護するために使用されます。
このコードでは、彼は変数がないようにポインタを自身&一切それが指すデータを変更するに変更することに加えて、ポインタ自体のconst修飾子を使用します。
 
私は方法は、この再帰を考えることはない。再帰は、スタックへの呼び出しを追加します。各再帰呼び出しは、スタック変数のセットを、次の追加します。)で最初の例(逆に、再帰呼び出しは、文字列の末尾に到達すると配置されるまで、スタック上の文字を。次に、それは)ポップスタック置かれ、文字をオフにし印刷先頭文字は最後の(スタック。配置それがある場合は、後の文字のスタック上に印刷する必要がありますので、あなたは順序は重要です逆にのコマンド。

誰もが目を引いた計算は、私は見つけられるだろうと思ったメリットがあります私がしたいと言うことは誰かとはまったく異なる

 
コード:ボイド逆(const char *をのconstのsPtr)

((sPtr場合[0] =='¥¥ 0')

戻り値;



((&sPtr [逆1]);

(sPtr putchar [0]);))

 

Welcome to EDABoard.com

Sponsor

Back
Top