質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

675閲覧

C言語 問題 ポインタ

yu_su31

総合スコア4

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2023/01/14 12:29

編集2023/01/14 12:37

イメージ説明

こちらのこちらの問題のか(31)と
(33)の+の違いが分かりません。
解説をおねがいしたいです。
きょう教科書でしらべ調べましたがいイマイチぴんとピンと来ません

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2023/01/14 12:39

とりあえずそのコードを動かして、何が起きるか見てみれば良いのでは。
guest

回答1

0

ベストアンサー

Text_feat._ChatGPT

1まず、実行結果は次のようになる。 2TULIP 3LIP 4PANSY 5LILY 6P 7 8*flowers[]はポインタの配列であり、flowers[0]は文字列"ROSE"の先頭を指すポインタである。 9flower[1]なども同様に各文字列を指すポインタである。 10 11p = flowers[1];でpは"TULIP"の先頭を指すようになる。 12pはcharのポインタであるから、p += 2;でpは文字'T'から2文字進んだ'L'を指すようになる。 13ここで、pを出力すると、'L'から始まって"TULIP"の終端にぶつかるまでの文字列"LIP"が出力される。 14 15ppはポインタのポインタであるから、pp = &flowers[2];のように記述する。 16flowersの各要素はポインタであるから、そのアドレスを指すのがポインタのポインタである。 17ppはflowers[2] (flowersの各要素はポインタだから、flowers[2]はポインタ) のアドレスを指しているから、 18これをそのまま出力すると0x7ffdb5573eb0のようになる。 19そこで、*ppを出力し、出力結果"PANSY"を得る。 20pp+1はflowers[3]のアドレスを指す。 21**ppは*(*pp)と同じであり、"PANSY"の先頭の文字'P'を表す。 22 23また、**(pp+1), *(*pp+1)の出力結果はそれぞれ'L', 'A'となる。

イメージ説明

投稿2023/01/14 13:12

編集2023/01/14 13:20
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問