スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
過去ログ
01 http://pc11.2ch.net/test/read.cgi/tech/1167476845/
02 http://pc11.2ch.net/test/read.cgi/tech/1178503366/
03 http://pc11.2ch.net/test/read.cgi/tech/1187521676/
04 http://pc11.2ch.net/test/read.cgi/tech/1221633708/
05 http://pc11.2ch.net/test/read.cgi/tech/1230516307/
06 http://pc11.2ch.net/test/read.cgi/tech/1231564903/
07 http://pc11.2ch.net/test/read.cgi/tech/1232983248/
08 http://pc12.2ch.net/test/read.cgi/tech/1235921779/
09 http://pc12.2ch.net/test/read.cgi/tech/1240022781/
10 http://pc12.2ch.net/test/read.cgi/tech/1242300936/
11 http://pc12.2ch.net/test/read.cgi/tech/1245059383/
12 http://pc12.2ch.net/test/read.cgi/tech/1248010352/
13 http://pc12.2ch.net/test/read.cgi/tech/1260842197/
14 http://pc12.2ch.net/test/read.cgi/tech/1269273471/
15 http://pc12.2ch.net/test/read.cgi/tech/1273368706/
16 http://hibari.2ch.net/test/read.cgi/tech/1279285647/
17 http://hibari.2ch.net/test/read.cgi/tech/1285115590/
18 http://hibari.2ch.net/test/read.cgi/tech/1291571263/
19 http://hibari.2ch.net/test/read.cgi/tech/1308106024/
20 http://toro.2ch.net/test/read.cgi/tech/1316013463/
21 http://toro.2ch.net/test/read.cgi/tech/1342285511/
22 http://peace.2ch.net/test/read.cgi/tech/1399911167/
23 http://peace.2ch.net/test/read.cgi/tech/1420379468/
24 http://echo.2ch.net/test/read.cgi/tech/1448685034/
探検
スレを勃てるまでもないC/C++の質問はここで 25 [隔離病棟]©2ch.net
2016/08/14(日) 00:04:05.53ID:z6U1tRVC
112デフォルトの名無しさん
2017/05/11(木) 19:46:38.79ID:9hjkljzx クラスの構造とかどうしても合わんわ。。あと、普通に文書いてても違和感感じるw
113デフォルトの名無しさん
2017/05/11(木) 20:44:47.50ID:r6M771XX114デフォルトの名無しさん
2017/05/11(木) 22:53:38.75ID:LJGZTDJk ファイル名に制約がかかる言語なかったっけ?
Java?
Java?
115デフォルトの名無しさん
2017/05/11(木) 23:24:48.41ID:1a/5L+8A javaは知らないがCは制約ある
正確にはファイル名じゃなくてincludeで指定する文字列だけど
正確にはファイル名じゃなくてincludeで指定する文字列だけど
116デフォルトの名無しさん
2017/05/12(金) 07:20:43.83ID:yoAOukLs Cのexport文と一対一になってないというだけの話じゃね
117デフォルトの名無しさん
2017/05/12(金) 07:25:29.38ID:r7FlYbQi C#のusingも同じなのかな
やっぱいまいちわからん
やっぱいまいちわからん
118デフォルトの名無しさん
2017/05/12(金) 09:45:14.44ID:gCSxRRWi Cの制約って何だ?
vs2015だが、ファイル名全角スペースでもエラーでない
vs2015だが、ファイル名全角スペースでもエラーでない
119デフォルトの名無しさん
2017/05/12(金) 12:06:01.20ID:OCYL1E3A120デフォルトの名無しさん
2017/05/12(金) 13:40:23.46ID:FoBe9UZW C++から3年ほど遠ざかっていた俺に最近のC++の何か凄いテクニックを教えてくれ。
121デフォルトの名無しさん
2017/05/12(金) 13:51:20.92ID:YITQwMx2 c++1zで使えるようになるvariantとかどうかね
(記述の見掛け上という意味で)継承を使わず 多態を実現できる
現状はboostでお試し可能
(記述の見掛け上という意味で)継承を使わず 多態を実現できる
現状はboostでお試し可能
122デフォルトの名無しさん
2017/05/12(金) 16:47:43.02ID:FoBe9UZW123デフォルトの名無しさん
2017/05/12(金) 19:18:49.01ID:fokGnnSL >>118
vcがそう実装してるだけで、他の処理系も同じようにエラーがでない保証はない
最低限のラインは、8文字+「.」+1文字で英数字のみ、ただし先頭は英字のみ、大文字小文字を区別する保証なし
規格上、inludeの文字列とファイル名が一致するかも定かでないから、気にしても無駄だけど
vcがそう実装してるだけで、他の処理系も同じようにエラーがでない保証はない
最低限のラインは、8文字+「.」+1文字で英数字のみ、ただし先頭は英字のみ、大文字小文字を区別する保証なし
規格上、inludeの文字列とファイル名が一致するかも定かでないから、気にしても無駄だけど
124デフォルトの名無しさん
2017/05/12(金) 19:23:40.34ID:WYsaiAgn たぶんCに制約はないだろ
125デフォルトの名無しさん
2017/05/12(金) 20:53:24.64ID:37oyzgXT ファイル名に「<」や「>」とか含んでいると困るの
126デフォルトの名無しさん
2017/05/13(土) 07:23:06.14ID:bjLbBbns ファイル名に制約という提起で
まさかファイル名や#includeに使えない文字の話になるとは思ってなかった
まさかファイル名や#includeに使えない文字の話になるとは思ってなかった
127デフォルトの名無しさん
2017/05/13(土) 08:04:09.13ID:DnMUFoIp 2chだからな
128デフォルトの名無しさん
2017/05/14(日) 16:50:22.30ID:gwLsZ5pp あるアルゴリズムをメソッドとして実装したクラスがあって、
そのアルゴの中で20個くらいの定数を用いる。
そのアルゴリズムの亜種をサブクラスとして作りたいが、その亜種の中では定数の値を親クラスの値とは違う値にしたい。
こういう時、定数群はどうやって定義するのがいいでしょうか。
メンバ変数として全部const intで持っておいて、
コンストラクタの初期化の文法で各クラス固有の値を入れればいいでしょうか。
できれば外部ファイルにjasonとかで持たせられないかとも思ってもいますが、それだとコンストラクタ内のconst intの初期化より先には読み込めないですよね。
浅学で恐縮です。よろしくお願いします。
そのアルゴの中で20個くらいの定数を用いる。
そのアルゴリズムの亜種をサブクラスとして作りたいが、その亜種の中では定数の値を親クラスの値とは違う値にしたい。
こういう時、定数群はどうやって定義するのがいいでしょうか。
メンバ変数として全部const intで持っておいて、
コンストラクタの初期化の文法で各クラス固有の値を入れればいいでしょうか。
できれば外部ファイルにjasonとかで持たせられないかとも思ってもいますが、それだとコンストラクタ内のconst intの初期化より先には読み込めないですよね。
浅学で恐縮です。よろしくお願いします。
129デフォルトの名無しさん
2017/05/14(日) 16:59:28.84ID:C90eDFbL 亜種が定数が違うだけならコンストラクタでええんでない?
アルゴリズムも似てるだけで少し違うとかなら使えんかも知らんけど
アルゴリズムも似てるだけで少し違うとかなら使えんかも知らんけど
130デフォルトの名無しさん
2017/05/14(日) 17:42:51.46ID:abQtpPi4 >>128
定数ではなくメンバ変数でいいじゃないの?
外部から変更されたくないなら読み取りプロパティにすればよいし
亜種はサブクラスのインスタンス作成時にファイルを読み込むようにして
親クラスのメンバ変数を上書きするようにする。
定数ではなくメンバ変数でいいじゃないの?
外部から変更されたくないなら読み取りプロパティにすればよいし
亜種はサブクラスのインスタンス作成時にファイルを読み込むようにして
親クラスのメンバ変数を上書きするようにする。
131デフォルトの名無しさん
2017/05/19(金) 19:46:36.77ID:BDF1+v1a コピーコンストラクタのところでエラーがでます。
>オブジェクトにメンバー 関数 "A::getFileName" と互換性のない型修飾子があります
>C2662 'const std::string &A::getFileName(void)': 'const A' から 'A &' へ 'this' ポインターを変換できません。
どう直せばいいのですか?
class A {
public:
A() {}
A(const A &a) {
this->setFileName(a.getFileName()); //ここでエラー
}
void setFileName(const std::string& fn) {
this->m_fileName = fn;
}
const std::string& getFileName() {
return this->m_fileName;
}
private:
std::string m_fileName;
};
>オブジェクトにメンバー 関数 "A::getFileName" と互換性のない型修飾子があります
>C2662 'const std::string &A::getFileName(void)': 'const A' から 'A &' へ 'this' ポインターを変換できません。
どう直せばいいのですか?
class A {
public:
A() {}
A(const A &a) {
this->setFileName(a.getFileName()); //ここでエラー
}
void setFileName(const std::string& fn) {
this->m_fileName = fn;
}
const std::string& getFileName() {
return this->m_fileName;
}
private:
std::string m_fileName;
};
132デフォルトの名無しさん
2017/05/19(金) 20:33:23.63ID:iLAnMNZa linux mint18 32bit
python3をF5で実行できるエディターは無いでしょうか?
Geany 1.27ではpython2.7なので、python3.5を使用したいと思ってます
PC自体にはpytho3.5と2.7が入ってます
python3をF5で実行できるエディターは無いでしょうか?
Geany 1.27ではpython2.7なので、python3.5を使用したいと思ってます
PC自体にはpytho3.5と2.7が入ってます
133デフォルトの名無しさん
2017/05/19(金) 20:34:44.55ID:iLAnMNZa 間違えました
134デフォルトの名無しさん
2017/05/19(金) 21:14:19.37ID:gHk1Pzkh135デフォルトの名無しさん
2017/05/19(金) 22:24:40.24ID:BDF1+v1a136デフォルトの名無しさん
2017/05/25(木) 22:25:27.96ID:QzzPv//a クラスのメンバ関数のポインタはすべてのインスタンスに共通で
例えばvectorに自作クラスを入れといてあとから要素の挿入・削除をして
インスタンスのメモリ上の位置が変わっても関数のポインタは変わらない
って理解であってますか?
例えばvectorに自作クラスを入れといてあとから要素の挿入・削除をして
インスタンスのメモリ上の位置が変わっても関数のポインタは変わらない
って理解であってますか?
137デフォルトの名無しさん
2017/05/25(木) 23:22:02.15ID:WUcUkfwI はい
関数の配置アドレスが実行時に変わるなんてことは起きないので
ちなみに同じインスタンスなのにメモリ上の位置が変わるなんてこともないと思うが
関数の配置アドレスが実行時に変わるなんてことは起きないので
ちなみに同じインスタンスなのにメモリ上の位置が変わるなんてこともないと思うが
138デフォルトの名無しさん
2017/05/28(日) 16:14:14.69ID:yvANlV24 Eigenに
operator*
でなくて逆向きかけ算の関数rdotを追加したい
つまり
some_object * eigen_matrix
するために
Eigen::EigenBase<Derived>::rdot
を追加して
eigen_matrix.rdot(some_object);
で計算できるようにしたい
しかし
no member function declared in class
というエラーになる
どうやったら後付けでmember function追加できるんだ?
Eigenの中はいじりたくない
operator*
でなくて逆向きかけ算の関数rdotを追加したい
つまり
some_object * eigen_matrix
するために
Eigen::EigenBase<Derived>::rdot
を追加して
eigen_matrix.rdot(some_object);
で計算できるようにしたい
しかし
no member function declared in class
というエラーになる
どうやったら後付けでmember function追加できるんだ?
Eigenの中はいじりたくない
139デフォルトの名無しさん
2017/05/28(日) 21:29:06.26ID:p7YrRaRu 元のクラス定義を変更せずにクラスにメンバ関数を追加することはできない
140デフォルトの名無しさん
2017/05/28(日) 23:55:15.37ID:T1SZ8kqz 継承したらダメなんか?
141デフォルトの名無しさん
2017/06/01(木) 07:42:47.62ID:SDX804Eo Eigen3の実装みてるんだけど
class Matrix{
operator * const ...
}
でほとんどの関数がconstで統一されてるのに
transposeだけconstついたのと,ついてないの2つあるのは何故?
class Matrix{
operator * const ...
}
でほとんどの関数がconstで統一されてるのに
transposeだけconstついたのと,ついてないの2つあるのは何故?
142デフォルトの名無しさん
2017/06/01(木) 10:34:56.04ID:tub0QHg4 そのほうが便利だ(と作者が思った)からだろう
const版
返されたtransposeはconstで変更不能
非const版
返されたtransposeは変更可能
変更すると間接的に元のmatrixも変更される
const版
返されたtransposeはconstで変更不能
非const版
返されたtransposeは変更可能
変更すると間接的に元のmatrixも変更される
143デフォルトの名無しさん
2017/06/02(金) 21:10:48.66ID:hdQ1KfrD プログラミング言語C++第4版の本を今頑張って読んでいます。
その中で、サンプルコードは著者のサイトでとURLが乗っているのですが、
これがトップページのURLしか書いてなくてどこからダウンロードできるかわからない状態です。
いろいろ調べたら、グーグルコードのサイトに飛ぶ場所を見かけたのでDLできるかと思いましたが、
グーグルコードは去年の一月には廃止されていて、ダウンロードができない状態です。
ほかにサンプルコードダウンロードできるような場所はあるのでしょうか。
色々と探しても同じような人は見当たりませんし、困っています。
どなたかご存知の方いらっしゃらないでしょうか。
その中で、サンプルコードは著者のサイトでとURLが乗っているのですが、
これがトップページのURLしか書いてなくてどこからダウンロードできるかわからない状態です。
いろいろ調べたら、グーグルコードのサイトに飛ぶ場所を見かけたのでDLできるかと思いましたが、
グーグルコードは去年の一月には廃止されていて、ダウンロードができない状態です。
ほかにサンプルコードダウンロードできるような場所はあるのでしょうか。
色々と探しても同じような人は見当たりませんし、困っています。
どなたかご存知の方いらっしゃらないでしょうか。
144デフォルトの名無しさん
2017/06/02(金) 22:06:31.65ID:uqHV+hQL 本持ってないけどこのページ上のリンクからダウンロードできるやつではないの?
https://code.google.com/archive/p/origin/source/default/source?page=1
https://code.google.com/archive/p/origin/source/default/source?page=1
145デフォルトの名無しさん
2017/06/03(土) 13:03:58.47ID:7x/augC4 >>144さん
返信ありがとうございます。
ダウンロードばかり気にしていたのかソースというところに気が付きませんでした。お恥ずかしい。
普通にダウンロードできまして、ソースも確認できました。
testingのソースコードが本に書いてあるコードと大体同じように書かれてたのでこれだと思います。
ただ、入門書ってわけじゃないからなのか、洋書だからなのかわかりませんが、
本で書かれているコードだいぶ端折っているなっていう感じなので、正確にこのサンプルで問題ないのかがわからないです。
返信ありがとうございます。
ダウンロードばかり気にしていたのかソースというところに気が付きませんでした。お恥ずかしい。
普通にダウンロードできまして、ソースも確認できました。
testingのソースコードが本に書いてあるコードと大体同じように書かれてたのでこれだと思います。
ただ、入門書ってわけじゃないからなのか、洋書だからなのかわかりませんが、
本で書かれているコードだいぶ端折っているなっていう感じなので、正確にこのサンプルで問題ないのかがわからないです。
146デフォルトの名無しさん
2017/06/03(土) 13:12:54.00ID:7x/augC4 143,145です。
すいません。145はなんか途中で書き込みをしてしまいました。
話を戻しまして、
でも、問題ないかがわからないのは、本もまだほとんど読めてないのと、C++も入門書を一回軽く読んだ程度の知識しかないので、わからないだけだと思いますので
本(サンプルも)を参考に自分でソースコードを記述していきたいと思います。
>>144さんのおかげで、ソースも手に入り、教えてもらったことで、モチベーションもあがりました(^^♪)
次に進めそうです。本当にありがとうございました。
すいません。145はなんか途中で書き込みをしてしまいました。
話を戻しまして、
でも、問題ないかがわからないのは、本もまだほとんど読めてないのと、C++も入門書を一回軽く読んだ程度の知識しかないので、わからないだけだと思いますので
本(サンプルも)を参考に自分でソースコードを記述していきたいと思います。
>>144さんのおかげで、ソースも手に入り、教えてもらったことで、モチベーションもあがりました(^^♪)
次に進めそうです。本当にありがとうございました。
147デフォルトの名無しさん
2017/06/09(金) 00:20:22.42ID:8CSNtvHv 他の言語結構熟練してたらべつだけど、
cプラにほとんど慣れてない状態で
この本を読んでも効率わるいだけとおもうがねぇ。
cプラにほとんど慣れてない状態で
この本を読んでも効率わるいだけとおもうがねぇ。
148デフォルトの名無しさん
2017/06/09(金) 00:30:02.53ID:8GQEdlWI 勉強してる気になれるからいいんだよ
149デフォルトの名無しさん
2017/07/01(土) 12:35:47.56ID:ID6W3bit スタティーック!
150デフォルトの名無しさん
2017/08/08(火) 00:05:19.81ID:O9M7bV7S C言語の関数ポインタというものは関数ポインタとして作られたのか通常のポインタの改良なのかどちらなのでしょうか?
関数ポインタの引数の仕組みがよく分からなかったので質問してみました
よろしくお願いします
関数ポインタの引数の仕組みがよく分からなかったので質問してみました
よろしくお願いします
151デフォルトの名無しさん
2017/08/08(火) 00:42:15.53ID:m8GLf68F 言ってる意味が良くわからないが
ポインタの性質は「型」で決まる
あるデータをどのように見なすか
それだけ
32bitだか64bitだかのデータを、文法上どう見なすかってだけ
関数ポインタの場合は関数のエントリーポイントと見なす
引数の数や種類や呼び出し方などは、型が知っている
型に基づいて呼び出すだけ
ポインタの性質は「型」で決まる
あるデータをどのように見なすか
それだけ
32bitだか64bitだかのデータを、文法上どう見なすかってだけ
関数ポインタの場合は関数のエントリーポイントと見なす
引数の数や種類や呼び出し方などは、型が知っている
型に基づいて呼び出すだけ
152デフォルトの名無しさん
2017/08/08(火) 02:23:09.82ID:SgAIOr6T >>150
極論言えば、配列のポインタも関数のポインタもただのポインタ。
対象が配列だから配列的にも振る舞える。
関数だから関数的にも振る舞える。
ただそれだけやね。
型は配列的とか関数的とかに振る舞う時のルール引数得るのに何回スタックからpushするかとかを教えるヒントにすぎない。
この辺はアセンブラ知ってると理解しやすいかもね。
極論言えば、配列のポインタも関数のポインタもただのポインタ。
対象が配列だから配列的にも振る舞える。
関数だから関数的にも振る舞える。
ただそれだけやね。
型は配列的とか関数的とかに振る舞う時のルール引数得るのに何回スタックからpushするかとかを教えるヒントにすぎない。
この辺はアセンブラ知ってると理解しやすいかもね。
153デフォルトの名無しさん
2017/08/08(火) 02:24:25.91ID:SgAIOr6T あ、スタック「から」だとpopやった。。。
154デフォルトの名無しさん
2017/08/08(火) 22:52:38.23ID:O9M7bV7S 変数のポインタはint *i;でアドレスだけを保持していて
関数ポインタはint (*func)(int i);でアドレスと引数リストを保持しているように思えます
引数が必要なのは分かりますが(int i)を勝手に付け足しても良いものなのかなと思いまして
関数ポインタはint (*func)(int i);でアドレスと引数リストを保持しているように思えます
引数が必要なのは分かりますが(int i)を勝手に付け足しても良いものなのかなと思いまして
155デフォルトの名無しさん
2017/08/08(火) 23:34:37.02ID:fmd6E2St156デフォルトの名無しさん
2017/08/08(火) 23:44:08.72ID:nf4ZHvzc >>154
何したくて何ききたいのかさっぱりだな
アドレスだけ見せられても、それが変数のアドレスなのか、関数のアドレスなのか、変数なら型は何なのか、関数なら引数あるのかないのか、あるならその型は・・・
アドレスだけじゃ解決できないよ
何したくて何ききたいのかさっぱりだな
アドレスだけ見せられても、それが変数のアドレスなのか、関数のアドレスなのか、変数なら型は何なのか、関数なら引数あるのかないのか、あるならその型は・・・
アドレスだけじゃ解決できないよ
157デフォルトの名無しさん
2017/08/08(火) 23:55:54.36ID:rlbWG25h158デフォルトの名無しさん
2017/08/09(水) 00:47:51.09ID:hEgnFYnk int *p;が逆参照したときにintとして扱えるように
int (*p)[10];が逆参照したときに配列として扱えるように
(君の言い分だと↑も[10]を勝手に付け足しているように見えるのかもしれないが)
型というものがあって、コンパイラは型を知っているから正しくアクセスできる
同じように
void (*p)(int i);としたとき、pはintを引数に取る関数のポインタという「型」になるから
その型をもってしてコンパイラは関数を呼び出せる
そう考えれば(int i)が付くのも当たり前、それが必要だからそういう文法になっている
「アクセスするときに必要となる情報を型として与えているのだよ」
特にCの場合は「そう見なしてくれ」という意味合いが強い
キャストして型を変えれば割とどうとでもなる面白い言語
単なるメモリブロックを配列や構造体と見なしてアクセスしたり
こういうことが出来る言語はあまりないので
低レベルでは未だにC系の言語が重宝されている
int (*p)[10];が逆参照したときに配列として扱えるように
(君の言い分だと↑も[10]を勝手に付け足しているように見えるのかもしれないが)
型というものがあって、コンパイラは型を知っているから正しくアクセスできる
同じように
void (*p)(int i);としたとき、pはintを引数に取る関数のポインタという「型」になるから
その型をもってしてコンパイラは関数を呼び出せる
そう考えれば(int i)が付くのも当たり前、それが必要だからそういう文法になっている
「アクセスするときに必要となる情報を型として与えているのだよ」
特にCの場合は「そう見なしてくれ」という意味合いが強い
キャストして型を変えれば割とどうとでもなる面白い言語
単なるメモリブロックを配列や構造体と見なしてアクセスしたり
こういうことが出来る言語はあまりないので
低レベルでは未だにC系の言語が重宝されている
159デフォルトの名無しさん
2017/08/09(水) 00:52:32.88ID:hEgnFYnk ちなみに
>>157は間違ってるから気にしなくてよいよ
C言語は静的型だから「実際に行かなくても先にあるものが分かる」
というか、先に何があろうが、「型」の示すものがあるものとして扱う
だから、病院の型のポインタに君の家のアドレスを入れたら
君の家に病人が殺到してバグる
キャストしなければそういう代入は出来ないようになっているがな
>>157は間違ってるから気にしなくてよいよ
C言語は静的型だから「実際に行かなくても先にあるものが分かる」
というか、先に何があろうが、「型」の示すものがあるものとして扱う
だから、病院の型のポインタに君の家のアドレスを入れたら
君の家に病人が殺到してバグる
キャストしなければそういう代入は出来ないようになっているがな
160デフォルトの名無しさん
2017/08/09(水) 01:02:42.02ID:hEgnFYnk 逆に、C言語は静的型だから、「実際に行ってみても、それが何であるか分からない」
住所に行ってみても、名札も無ければ看板も無いので、それが何なのか分からない
そういった情報は全部メタ的に「型」にしかない
そして型はコンパイル時のコンパイラしか知らない
コンパイル後のコードには型情報は綺麗さっぱり消えてなくなってる
C言語はデータになんであるかを示す型情報が無い
実行時にデータから型を取得することはできない
なんで、関数ポインタの型にはそれを通して関数を呼び出せるだけの情報が必要
そういうことが出来る文法になってる
住所に行ってみても、名札も無ければ看板も無いので、それが何なのか分からない
そういった情報は全部メタ的に「型」にしかない
そして型はコンパイル時のコンパイラしか知らない
コンパイル後のコードには型情報は綺麗さっぱり消えてなくなってる
C言語はデータになんであるかを示す型情報が無い
実行時にデータから型を取得することはできない
なんで、関数ポインタの型にはそれを通して関数を呼び出せるだけの情報が必要
そういうことが出来る文法になってる
161デフォルトの名無しさん
2017/08/09(水) 01:04:32.68ID:hEgnFYnk >そして型はコンパイル時のコンパイラしか知らない
あとプログラマとね
あとプログラマとね
162デフォルトの名無しさん
2017/08/09(水) 01:31:24.27ID:6o6it4hw ありがとうございます
質問が分かりづらかったようですみませんでした
intとして扱えるポインタの型や配列として扱えるポインタの型、関数として扱えるポインタの型と言うようにポインタにも幾つかの型があるんですね
ようやく皆さんの言っていることが分かりました
他にもどんな型があるのか知りたいのですが、こういったことはどこに書いてあるのでしょうか?
質問が分かりづらかったようですみませんでした
intとして扱えるポインタの型や配列として扱えるポインタの型、関数として扱えるポインタの型と言うようにポインタにも幾つかの型があるんですね
ようやく皆さんの言っていることが分かりました
他にもどんな型があるのか知りたいのですが、こういったことはどこに書いてあるのでしょうか?
163デフォルトの名無しさん
2017/08/09(水) 10:28:38.52ID:RdtvDY+v164デフォルトの名無しさん
2017/08/09(水) 13:08:26.15ID:FEqENNu4 >>162
なんか勘違いしてる。
ポインタはポインタが指す先のデータ型をポインタの型と言ってるだけで、
ポインタに根本的に異なる種類があるわけじゃない。
たまに見る「ポインタはアドレスだ」っていうのはそういう意味だけど、
アドレスという言い方は初心者には分かりやすいかもしれないけど
不正確なので、そういうレスは要注意
なんか勘違いしてる。
ポインタはポインタが指す先のデータ型をポインタの型と言ってるだけで、
ポインタに根本的に異なる種類があるわけじゃない。
たまに見る「ポインタはアドレスだ」っていうのはそういう意味だけど、
アドレスという言い方は初心者には分かりやすいかもしれないけど
不正確なので、そういうレスは要注意
165デフォルトの名無しさん
2017/08/09(水) 17:47:06.00ID:Nvjd+alY もう面倒だから void *p
166デフォルトの名無しさん
2017/08/11(金) 11:07:36.66ID:Ca8C76qb >>164
アドレス、でいいと思うよ、どんなときに不正確になるの?
アドレス、でいいと思うよ、どんなときに不正確になるの?
167デフォルトの名無しさん
2017/08/11(金) 11:37:15.24ID:nYt6U0do >>165
昔、voidっていう人いたよね
昔、voidっていう人いたよね
168デフォルトの名無しさん
2017/08/11(金) 12:03:58.06ID:Ca8C76qb 日下部さんだね、一連の馬鹿吊り上げの手法はたいしたものだ
彼にかかると面白いように釣れるんだね
彼にかかると面白いように釣れるんだね
169デフォルトの名無しさん
2017/08/12(土) 11:18:07.25ID:gBGehi2j >>166
void型のポインタに関してはアドレスでいいと思うよ
void型のポインタに関してはアドレスでいいと思うよ
170デフォルトの名無しさん
2017/08/22(火) 14:42:32.63ID:a5iq0eNT171デフォルトの名無しさん
2017/09/09(土) 17:22:28.03ID:ua/r5C7o ヌルポはアドレス0を示すポインタと区別が付かない。
ポインタ演算はアドレス計算で間違いないと思うが。
ポインタ演算はアドレス計算で間違いないと思うが。
172デフォルトの名無しさん
2017/09/10(日) 01:13:46.17ID:kRb3fDCd 0を示すものに1を加えたとき、1になって欲しいのがアドレス
そうとは限らないのがポインタ
そうとは限らないのがポインタ
173デフォルトの名無しさん
2017/09/10(日) 01:41:24.87ID:ZBmzdD/d なら、そこまで言うなら
アドレスには型が無い、あっても整数型、intptr_tとか
ポインタには型があって、*や->や()を使って指し示すものにアクセスできる
という大いなる違いがある
アドレスを静的型でラップしたものにポインターという名前を付けた、程度
アドレスには型が無い、あっても整数型、intptr_tとか
ポインタには型があって、*や->や()を使って指し示すものにアクセスできる
という大いなる違いがある
アドレスを静的型でラップしたものにポインターという名前を付けた、程度
174デフォルトの名無しさん
2017/09/10(日) 01:52:16.37ID:tW3VD+Zp その程度違いがあるから、アドレス≠ポインタだね
175デフォルトの名無しさん
2017/09/10(日) 11:43:30.44ID:Yx0nU1n/ >>171
ヌルポしたけど sage だから失敗
ヌルポしたけど sage だから失敗
176デフォルトの名無しさん
2017/09/10(日) 22:38:52.49ID:6lPEiBMC アドレス値を入れる種類の変数(の型)≡ポインタ
アドレスとポインタは一緒だとおもうよ,ポインタに型がある,とかいうのはCコンパイラ言語仕様側の都合にすぎないし
アドレスの整数値とポインタの表現する整数値が食い違う例(ただし NULL とか far/near はわかっているから除く:−)ってそんなにないんじゃないの?
アドレスの整数値とポインタの表現する整数値が食い違う例(ただし NULL とか far/near はわかっているから除く:−)ってそんなにないんじゃないの?
178デフォルトの名無しさん
2017/09/17(日) 14:44:48.15ID:qULdwsa1 アドレスとポインタは違うと思うけどなあ
アドレスは数値そのもの、ポインタはその入れ物
だから「int型のアドレス」とは言わないし、「ポインタ0x12345678番」とは言わないし
アドレスは数値そのもの、ポインタはその入れ物
だから「int型のアドレス」とは言わないし、「ポインタ0x12345678番」とは言わないし
179デフォルトの名無しさん
2017/09/17(日) 15:07:54.63ID:KmM7k2LQ >>178
これが正しい
これが正しい
180デフォルトの名無しさん
2017/09/17(日) 15:32:04.84ID:dEX9B4aF 入れ物をインクリメントするのも変だよな。
181デフォルトの名無しさん
2017/09/17(日) 15:45:07.67ID:iyMogwhx >Cコンパイラ言語仕様側の都合にすぎないし
あほだなぁと思うのは、ここで言うポインタというのは
C言語の仕様で定められたポインタのことじゃないのか?
C言語の仕様として「ポインタ」が定められていて
それに関してどうこうって時に
C言語の仕様の都合だから〜とかイミフ
C言語のポインタにC言語の仕様以外の意味なんかないだろ
あほだなぁと思うのは、ここで言うポインタというのは
C言語の仕様で定められたポインタのことじゃないのか?
C言語の仕様として「ポインタ」が定められていて
それに関してどうこうって時に
C言語の仕様の都合だから〜とかイミフ
C言語のポインタにC言語の仕様以外の意味なんかないだろ
182デフォルトの名無しさん
2017/09/17(日) 15:50:42.26ID:53PrWSTF >>181,178
これだなw
これだなw
183デフォルトの名無しさん
2017/09/17(日) 16:21:54.39ID:qULdwsa1 >>180
インクリメントしているのは入れ物の中身では?
インクリメントしているのは入れ物の中身では?
184デフォルトの名無しさん
2017/09/17(日) 16:52:30.92ID:nfmsAfUe >>178の例えだと中身はアドレスってことになるが、ポインタのインクリメントは
アドレスのインクリメントとは違うだろう。
アドレスのインクリメントとは違うだろう。
185デフォルトの名無しさん
2017/09/17(日) 17:01:41.39ID:qULdwsa1 「アドレス0x12345678番をインクリメントする」のだから間違いでは無いと思うよ
ただ数値をいくつ増加させるかはポインタの型(つまり入れ物の型)に依存する
ただ数値をいくつ増加させるかはポインタの型(つまり入れ物の型)に依存する
186デフォルトの名無しさん
2017/09/17(日) 17:24:14.07ID:nfmsAfUe だからそれがポインタのインクリメントだろう。
わざわざ入れ物だ中身だと意味がよくわからない例えは余計。
わざわざ入れ物だ中身だと意味がよくわからない例えは余計。
187デフォルトの名無しさん
2017/09/17(日) 17:30:00.83ID:dEX9B4aF188デフォルトの名無しさん
2017/09/17(日) 17:30:33.37ID:qULdwsa1 何が言いたいのか良く分からないんだが
アドレスとポインタは違うものでポインタはアドレスを入れるものってだけの話だよ
アドレスそのものに型はないがポインタには型がある
ポインタのインクリメントとは、ポインタの型に従ってアドレスをインクリメントする
アドレスとポインタは違うものでポインタはアドレスを入れるものってだけの話だよ
アドレスそのものに型はないがポインタには型がある
ポインタのインクリメントとは、ポインタの型に従ってアドレスをインクリメントする
189デフォルトの名無しさん
2017/09/17(日) 17:31:34.74ID:53PrWSTF いちゃもんレベルだなw
190デフォルトの名無しさん
2017/09/17(日) 17:34:55.50ID:qULdwsa1191デフォルトの名無しさん
2017/09/17(日) 17:55:30.80ID:KmM7k2LQ192デフォルトの名無しさん
2017/09/17(日) 18:45:32.71ID:dEX9B4aF ポインタ型変数がポインタなのか?それに入っているのがポインタなのか?
もしかしたらポインタというのは存在しないのではないか?
もしかしたらポインタというのは存在しないのではないか?
193デフォルトの名無しさん
2017/09/17(日) 18:58:47.30ID:iyMogwhx 何を訳の分からないことを言ってるんだ?
Cの規格書に出てくるんだからあるに決まってるだろ
当たり前だがポインタ型変数に入っているものはポインタだ
多くの処理系で機械語レベルでは単にアドレスというだけ
同じように浮動小数点型変数に入っているものは浮動小数点だ
これも多くの処理系で機械語レベルではIEEEのホゲホゲというだけ
Cの規格書に出てくるんだからあるに決まってるだろ
当たり前だがポインタ型変数に入っているものはポインタだ
多くの処理系で機械語レベルでは単にアドレスというだけ
同じように浮動小数点型変数に入っているものは浮動小数点だ
これも多くの処理系で機械語レベルではIEEEのホゲホゲというだけ
194デフォルトの名無しさん
2017/09/17(日) 20:45:56.11ID:dEX9B4aF >>193
つまり、機械語レベルではアドレスと言うものが、Cではポインタと言われているのか?
つまり、機械語レベルではアドレスと言うものが、Cではポインタと言われているのか?
195デフォルトの名無しさん
2017/09/17(日) 21:07:31.82ID:53PrWSTF 基本的にポインタの値は低レベルではアドレス値だけど
機械語レベルではアドレスと言うものがCではポインタと言われているとは限らない
機械語レベルではアドレスと言うものがCではポインタと言われているとは限らない
196デフォルトの名無しさん
2017/09/17(日) 22:10:04.90ID:iyMogwhx 多分、根本的に、型というものが理解できてないんだと思うよ
197デフォルトの名無しさん
2017/09/17(日) 22:18:43.93ID:dEX9B4aF >>195
ちょっと待って。そこをはっきりさせてくれよ。
ちょっと待って。そこをはっきりさせてくれよ。
198デフォルトの名無しさん
2017/09/17(日) 22:25:24.89ID:iyMogwhx AならBだけど、BならAとは限らないってだけ
これぐらいは高校の数学で習うだろ
もしくはアップキャストは常に成功するけど
ダウンキャストは成功するかわからない、といったところか
これぐらいは高校の数学で習うだろ
もしくはアップキャストは常に成功するけど
ダウンキャストは成功するかわからない、といったところか
199デフォルトの名無しさん
2017/09/18(月) 02:34:06.85ID:5sYblZKp char *p のとき、
p はポインタ?それともポインタ型変数?
pに入っているのはポインタ?それともアドレス?
ポインタってどれ?
p はポインタ?それともポインタ型変数?
pに入っているのはポインタ?それともアドレス?
ポインタってどれ?
200デフォルトの名無しさん
2017/09/18(月) 02:55:32.19ID:dIhl3VcQ201デフォルトの名無しさん
2017/09/18(月) 03:23:36.62ID:5sYblZKp >>200
ありがとう。
ちょっと考えてたんだけど、やっぱりchar型ポインタとかint型ポインタってのはないんじゃないのかな。
インクリメントしたときにいくつ増えるかはポインタ変数の型で決まるだけだし。
ありがとう。
ちょっと考えてたんだけど、やっぱりchar型ポインタとかint型ポインタってのはないんじゃないのかな。
インクリメントしたときにいくつ増えるかはポインタ変数の型で決まるだけだし。
202デフォルトの名無しさん
2017/09/18(月) 03:35:36.95ID:dIhl3VcQ203デフォルトの名無しさん
2017/09/18(月) 10:09:10.30ID:Rs/BRyvp >ちょっと考えてたんだけど、やっぱりchar型ポインタとかint型ポインタって
>のはないんじゃないのかな。
int i; char c;
&i //int型ポインタ
&c //char型ポインタ
>のはないんじゃないのかな。
int i; char c;
&i //int型ポインタ
&c //char型ポインタ
204デフォルトの名無しさん
2017/09/18(月) 16:51:15.62ID:XDi5i+Jp205デフォルトの名無しさん
2017/09/18(月) 18:57:32.72ID:gSdMoaKK jmp addr
206デフォルトの名無しさん
2017/09/19(火) 12:42:20.85ID:1YUfQXAj それは関数へのポインタじゃないの?
207デフォルトの名無しさん
2017/09/19(火) 13:21:39.96ID:87FEHvFq jmpだけ見せられたらそれはcだとgotoかな
もちろん関数ポインタもあり得るし、ほかにも逆コンパイル先はあり得る
もちろん関数ポインタもあり得るし、ほかにも逆コンパイル先はあり得る
208デフォルトの名無しさん
2017/09/19(火) 18:10:22.48ID:PcYxkZC9 どーでもいい話になったら伸びるねこのスレ
209デフォルトの名無しさん
2017/09/19(火) 19:47:23.33ID:ruUa1Ruj >>206
ifとかの分岐でもjmpは生成されるだろ
ifとかの分岐でもjmpは生成されるだろ
210デフォルトの名無しさん
2017/09/19(火) 19:52:37.77ID:87FEHvFq jneとかじゃないか?
211デフォルトの名無しさん
2017/09/20(水) 13:01:55.83ID:hO1kkbas 関数へはcallだね。Z80だと。
212デフォルトの名無しさん
2017/09/30(土) 01:34:37.34ID:/jgYbdHq 関数は飛んだあと戻ってこないとだめだからね
飛ぶ前のアドレスをpushして飛ぶ
そこがjmpとの違いなんだが...
まあ高級言語しか使ったことない人にはあまりそのあたりがわからないのだろう
飛ぶ前のアドレスをpushして飛ぶ
そこがjmpとの違いなんだが...
まあ高級言語しか使ったことない人にはあまりそのあたりがわからないのだろう
レスを投稿する
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否★4 [夜のけいちゃん★]
- 中国側が首相答弁の撤回要求、日本側拒否★3 [夜のけいちゃん★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★4 [蚤の市★]
- 被爆者は「怒りが腹の底から湧いてくる」高市首相“非核三原則見直し報道”に被爆地で懸念や憤りの声《長崎》 [1ゲットロボ★]
- 解体ごみ約2.3トンを山に不法投棄か トルコ国籍解体工を逮捕 埼玉 [どどん★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 ★2 [蚤の市★]
- ネトウヨたち「「「戦争に反対する奴はスパイ!」」」 こんな状況でスパイ防止法が成立させられようとしてるとかマジでヤバすぎるだろ… [314039747]
- 【悲報】高市「稼がなきゃだめよ!稼ぐのよ!あとはよろしく」農水大臣「...(これが総理の農林水産業への思い気持ち)」 [517459952]
- みっちゃん「南鳥島にレイアース資源が眠っているのは皆さんご存知のはずです。そのレイアースを中国が狙ってます」高市 [931948549]
- 精神する時の🏡
- ネトウヨ「中国のものは何もいらない!」 中国人「だったら漢字を使わないでください」 [314039747]
- 【速報】春節の飛行機も欠航ラッシュ 高市早苗終了か [695089791]
