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

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

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

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

ポインタ

ポインタはアドレスを用いてメモリに格納された値を"参照する"変数です。

Q&A

解決済

3回答

217閲覧

C言語のポインタの説明

退会済みユーザー

退会済みユーザー

総合スコア0

C

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

ポインタ

ポインタはアドレスを用いてメモリに格納された値を"参照する"変数です。

1グッド

0クリップ

投稿2018/10/18 06:27

#include <stdio.h> int main(){ int *p; p = (int *) malloc(sizeof(int) * 1); *p = 10; free(p); return 0; }

この*pとpと&pの違いがよくわからないので教えていただけるとありがたいです.

uenotakahiro👍を押しています

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

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

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

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

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

mather

2018/10/18 06:30

ポインタについて書籍やWeb上の資料がいくらでもあるのですが、検索してみましたか?
退会済みユーザー

退会済みユーザー

2018/10/18 06:56

検索してみたんですが、うまく検索できませんでした。(*pと&pはわかったのですが、pと&pの違いがわからず、&p自体の理解もよくわからなくなってしまい…)
guest

回答3

0

ベストアンサー

  • *p: pが指しているアドレスが示す値
  • p: pが指しているアドレス
  • &p: p自身のアドレス

pのみではわかりにくいので、他の変数を使ってみるとわかりやすいです。

投稿2018/10/18 06:29

dice142

総合スコア5158

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

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

0

こんにちは。

pはint側変数を指すポインタですね。
*pはポインタpが指す先の変数を示します。
pはそのままポインタです。
&pはちょっと難しいです。ポインタpは、ポインタ型の変数です。ですので、メモリが割り当てられていますのでアドレスもあります。そのアドレスが&pです。

以前、似たようなことをここで解説したことがあります。この「3-3.Visual Studioでビルドとデバッグ実行」に出てくるaPointerpにあたります。
この実行例では、&aPointerの値は0x0058FB34になります。

投稿2018/10/18 06:51

Chironian

総合スコア23272

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

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

退会済みユーザー

退会済みユーザー

2018/10/18 06:54

ありがとうございます! 値が違うのはわかったんですが、いまいちはっきりしなかったので。
guest

0

解決しちゃいましたが書きかけたので投稿しておきます。

アドレス備考
0x100010mallocした領域
0x20000x1000変数p

仮に上記のようにメモリ上に配置されたとします。

  • *pは変数pが持つ値(アドレス)0x1000にある値=10
  • pは変数pが持つ値(アドレス)=0x1000
  • &pは変数pが格納されているアドレス=0x2000

投稿2018/10/18 07:02

ttyp03

総合スコア16998

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問