C言語なら俺に聞け 157

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0345-kMi9)
垢版 |
2021/06/28(月) 11:22:51.50ID:so+vl3vs0
!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/

※前スレ
C言語なら俺に聞け 156
https://mevius.5ch.net/test/read.cgi/tech/1601271690/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/08/14(土) 21:43:24.21ID:g6ShE1m2M
アニメで良いよ
361デフォルトの名無しさん (ワッチョイ 42ad-Iu++)
垢版 |
2021/08/14(土) 22:34:56.70ID:Znm3fqvr0
性格,性質,気質,特質,特性,特色,人格,品性,高潔さ,正直さ
2021/08/14(土) 22:38:05.04ID:io8zq2Gb0
むこうの語感的にletterだとアルファベットだけで数字とか記号を含めないかもしれない
363デフォルトの名無しさん (ワッチョイ 4d85-/ojN)
垢版 |
2021/08/14(土) 23:51:39.71ID:lbIZmRLc0
>>358
letterだとletになりそうだから嫌ったんだろ
2021/08/15(日) 00:01:55.60ID:oR5NZ4bd0
いっそのこと単に byte とでもしておけばよかったのかもしれない。
2021/08/15(日) 00:05:31.44ID:U+FsjVqC0
>>362 が正解
>>363 は単なるバカ
2021/08/15(日) 00:25:17.76ID:ftNChFXo0
>>364
char8_t ですね

bool が int も無駄が多い
2021/08/15(日) 01:04:08.98ID:lrNh9u+Sa
歴史的に char と byte はどっちが先なのかな
2021/08/15(日) 04:44:19.93ID:Jy6PA5Os0
英語圏でもチャーだけどな
ググればすぐわかる
369デフォルトの名無しさん (アウアウウー Saa5-ZsKU)
垢版 |
2021/08/15(日) 06:15:17.61ID:FL52AdfHa
https://eow.alc.co.jp/search?q=char

焦がす。
370デフォルトの名無しさん (アウアウウー Saa5-ZsKU)
垢版 |
2021/08/15(日) 06:18:12.36ID:0d93Uofwa
char siu

チャーシュー
2021/08/15(日) 16:55:39.88ID:76TevYyAa
>>368
もうずいぶん昔だけど「キャラクター」とか「インテジャー」とか省略しないで呼んでたぞ
今は「チャー」なんか
2021/08/15(日) 17:59:18.88ID:oR5NZ4bd0
>>359
enumerate の頭の音はグーグル翻訳だとエに近い発音に聞こえるけど
weblio だと明瞭にイに聞こえる。
2021/08/15(日) 19:39:25.14ID:Jy6PA5Os0
>>371
英語設定でググってみるといいよ
チャー派とカー派がいてチャー派が優勢のように見える。
reddit見るとお前ガンダム見たことないんか?シャーーー!とかlisperが混乱するだろがってコメントがあってワロ
2021/08/15(日) 19:58:39.32ID:l+/QmNzh0
care派も結構いるっぽいが
375デフォルトの名無しさん (アウアウクー MMb1-9nCG)
垢版 |
2021/08/15(日) 21:05:49.36ID:g44nIVaSM
プログラムを書くのに読み方なんて意味が通じればどっちでもいいやん
2021/08/16(月) 00:02:13.11ID:r0BCUeQy0
初心者です、stdio.hの保存場所が知りたいです

Visual Studio Communuty 2018を使っており、標準ライブラリはインクルードディレクトリに指定された場所にあるということでした
プロパティでインクルードディレクトリを確認したところ、以下のようになっていましたが意味が分かりません
$(VC_IncludePath);$(WindowsSDK_IncludePath);

変数になっているようですが、どこかで確認できるのでしょうか?
377デフォルトの名無しさん (アウアウウー Saa5-PlbL)
垢版 |
2021/08/16(月) 00:13:21.48ID:x3HJsFala
間違っていたらごめんなさい

その $() で囲まれた文字列をコマンドプロンプトから
echo %文字列%
として表示される文字列はどうでしょう
2021/08/16(月) 00:14:50.67ID:wg/zbZxl0
その値のところをクリックして<編集...>を選べば評価された値が見えると思う
その画面の右下の「マクロ>>」ってボタンを押せば使われてる変数の値も見える
上の構成がDebugかReleaseかで値が違う変数もあるけどIncludePathはたぶん同じ

2019で確認したから微妙に違うかもしれない
2021/08/16(月) 00:19:13.32ID:x3HJsFala
echo で確認する方法は、その環境下でなければ
なので、別にコマンドプロンプトを起動してではダメですね
2021/08/16(月) 00:21:12.34ID:r0BCUeQy0
>>378
>>379
ありがとうございます、確認できました!
Visual Studio実行環境でこれらの環境変数が追加されているイメージなのですね
2021/08/16(月) 00:23:50.80ID:x3HJsFala
2021/08/16(月) 00:29:55.90ID:sQwoI9K70
VSインストールすると環境変数セットするバッチファイルが入って来たと思うが、今は違うのか?
古い知識で済まん
2021/08/16(月) 04:32:44.78ID:pMWrjH7B0
てすてす
384デフォルトの名無しさん (ワッチョイ 42ad-Iu++)
垢版 |
2021/08/16(月) 10:19:54.49ID:sZNsU9Vp0
すてすて
2021/08/16(月) 14:57:58.88ID:Gh+OcB3lF
実は VisualStudio は初心者向けじゃない
2021/08/16(月) 20:10:17.02ID:BeGCPKkC0
visual studioが覇権取ってからプログラミングが嫌になりました・・・
プログラミングが嫌というかvisual studioの設定とか使い方とかそういうのを覚えるのが・・・
LSI C+メモ帳で良かったのに・・・
2021/08/16(月) 20:17:22.96ID:sQwoI9K70
LSI C(試食版)は16ビットコンパイラでしかもSmodelしか作れないから
64ビットWindows環境で動かすのは無理じゃない?
2021/08/16(月) 20:37:48.81ID:4H+7uDzk0
……Visual Studio Community 2018なんてあったっけ?
2021/08/16(月) 20:41:26.98ID:1MUZwyiI0
vs2019 と cuda の相性が悪かったが治ったのなら起こしてくだしあ
2021/08/16(月) 22:55:54.30ID:r0BCUeQy0
素朴な疑問でprintfでdouble型を表示させようとしたとき%lfでなく%fにする理由なんですが、
floatを引数とするとdouble型にキャストされるので、printfではfloat型もdouble型も同じ%fと記述すればいいことになっている
と言う理解で合ってますか?
2021/08/16(月) 23:08:54.14ID:GAZDNQn70
相性悪いって何かあったっけ?
2021/08/17(火) 03:49:27.19ID:yPn/BtRt0
>>390
あってる。
printf ではというか可変長引数では既定の実引数拡張のルールで float は double に拡張されるから区別しようがない。
よくわかってないやつが %lf って書いちゃうから C99 から仕様に入れることになったみたいな話だったはず。
(逆に言えばそれまでは無かった。)

でも引数に double を与えるつもりなら意味的にそれがわかるにこしたことはないので、
人間が読み書きする都合を考えるなら積極的に区別したほうがいいと思う。
2021/08/17(火) 05:49:50.95ID:bbuY4XG00
>>387
64で16bitモード使えないのは単なる嫌がらせ
技術的に本当はできるのに拒否してる

必要ならVM使うといい
過去バージョンは↓で入手できる
https://winworldpc.com/library/operating-systems
2021/08/17(火) 10:00:30.15
>>393
私は長年武田さんの MS-DOS Player
http://takeda-toshiya.my.coocan.jp
を使っています‥‥
2021/08/17(火) 10:22:58.26ID:bbuY4XG00
>>394
なかなかオモロイサイトだね
спасибо!
2021/08/17(火) 11:04:10.80ID:1ngtDSTVK
>>390
>>392
整数の基本型がintであるように、小数の基本型がdoubleだから。
そもそもdoubleっつー名前が良くないと思う。いまのdoubleをfloatにして、いまのfloatをsingle floatとかshort floatにすれば良かったのに…
2021/08/17(火) 11:14:12.12ID:bbuY4XG00
年代的に元々floatが標準のつもりだったんだろうな
2021/08/17(火) 11:56:57.33ID:4Ah+oX6mM
当たり前は時代と共に変わる
399デフォルトの名無しさん (ワッチョイ 42ad-Iu++)
垢版 |
2021/08/17(火) 16:52:28.09ID:5M+zf85m0
>>396
倍精度ってのを表したかったんだろうな。
2021/08/17(火) 21:48:20.20ID:G/OIjFk20
>>396
>小数の基本型がdoubleだから。

その理由は%fがdoubleだからというトートロジーでない?
2021/08/17(火) 22:05:20.16ID:SEkFORwja
計算自体は倍精度でやっていて、floatの場合結果を丸めてるの?
2021/08/17(火) 22:24:11.58ID:oC68rP2o0
そもそも
> 可変長引数では既定の実引数拡張のルールで float は double に拡張される
って言うのがよくわからん
普通にfloatはfloatのまま渡しゃいいじゃんと思うんだけどなんか理由あったのかな?
2021/08/17(火) 22:44:19.25ID:yPn/BtRt0
引数の受け渡しにスタックを使う場合でもレジスタを使う場合でも
ワードサイズより小さい型はどうせそのワードサイズに調整して積むことになるので切り詰める意味がない。
(ワードにたくさん情報を詰め込むことも出来るといえば出来るけどかえって非効率になる。)
だから int より小さい型を int に調整するというのはハードウェア的
な都合が反映されていると思う。

昔は浮動書数点演算ユニット (FPU) は CPU の外に持っているのが普通だったんだが
その時代でも FPU のレジスタは大きめなサイズを持っていた。
double が収まるレジスタがあるなら double で受け渡すほうが都合が良かったんだろう。

※ この場合の「ワード」は2バイトという意味ではなく各アーキテクチャにおける基本サイズという意味なので注意
2021/08/18(水) 09:07:55.01ID:a3KKdrJy0
ん、8087由来のサイズになってるのはlong doubleだろ
2021/08/18(水) 09:53:36.78ID:AHN/ch/v0
long double って表現がもう頭悪いよね・・・
2021/08/18(水) 14:10:11.42ID:a3KKdrJy0
%lfはどう見てもlong floatだね
%dはint用にしちゃってるから仕方なかったのかな
2021/08/18(水) 19:02:54.03ID:9oCYCOnk0
>>405
ダブロン って表現だとゲンが悪すぎるだろ・・
2021/08/18(水) 19:55:50.38
>>403
>その時代でも FPU のレジスタは大きめなサイズを持っていた。
80bit でしたっけ、そのうち仮数部が何ビットだったかは思い出せません
2021/08/18(水) 20:09:35.86ID:Wv6HiLZZ0
符号部1ビット+指数部15ビット+仮数部64ビット
410デフォルトの名無しさん (ワッチョイ ff02-VfHF)
垢版 |
2021/08/22(日) 01:54:25.30ID:0Cz6ueFz0
Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています

Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます

Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ

なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?

Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html


Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる

「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
2021/08/22(日) 11:26:19.76ID:D+A51yiS0
pythonを可読性高いという時点で眉唾だな・・・
2021/08/23(月) 11:13:34.28ID:4N/X7GO90
char *b = "0123456";

printf("%x\n", 3[b]);
// 33

これって、どうしてこういう書き方 3[b] ができるんだっけか
シンタックスシュガーとかじゃなく、明確な理屈があって出来ちゃうんだよね?
413デフォルトの名無しさん (エムゾネ FF9f-tXhk)
垢版 |
2021/08/23(月) 11:39:17.23ID:JYwdk8yBF
*(3 + b)
414デフォルトの名無しさん (ワッチョイ 7fad-WNkQ)
垢版 |
2021/08/23(月) 11:42:03.51ID:UaBHP8Yo0
>>412
いやあ、それ、シンタックスシュガーでしかないと思うが。
[の左側+[]の内側で計算した結果をポインタ扱いにするってだけなので。
2021/08/23(月) 11:52:16.18ID:4N/X7GO90
>>413-414
ありがとうなるほどそーいう理屈なのか
素晴らしいです。 全てを理解していきます
2021/08/23(月) 22:51:00.15ID:qUWlnfUi0
標準でもそのまんまだなぁ

> A postfix expression followed by an expression in square brackets [] is a subscripted designation of an element of an array object.
> The definition of the subscript operator [] is that E1[E2] is identical to (*((E1)+(E2))).
> Because of the conversion rules that apply to the binary + operator, if E1 is an array object (equivalently, a pointer to the initial element of an array object) and E2 is an integer, E1[E2] designates the E2-th element of E1 (counting from zero).
2021/08/23(月) 22:55:19.33ID:OjohHfKH0
余計なお世話になるが

printf("%x\n", 3["0123456"]);

これでもいいんだよな
2021/08/24(火) 00:04:42.72ID:MkJE9y3A0
>>417
良いよ。
2021/08/24(火) 10:01:54.33ID:tBKv4I6S0
脱線するけど、そもそもCでこの書き方できたのか
printf("%x\n", "0123456"[3]);
なんかできないと思い込んでた。 Cはなんでもできるんだな
2021/08/24(火) 17:49:40.18ID:DexxKsi10
IOCCCの黎明期ならマウントとれたネタだね
今ドヤるやつはプークスクスされるだけ
421デフォルトの名無しさん (ワッチョイ 7f81-WQfa)
垢版 |
2021/08/24(火) 19:44:16.50ID:KCG/N/Sb0
stack領域で確保したポインタをfreeしたらどうなるんですか?
2021/08/24(火) 20:03:31.48ID:Y1wLIEKvM
>>419
> printf("%x\n", 3["0123456"]);
はともかく
> printf("%x\n", "0123456"[3]);
は実用でもそこそこ使うだろ
4bitの数値を16進数に変換する時に
"0123456789abcdef"[i]
ってやるとかは定番
2021/08/24(火) 20:04:24.13ID:Y1wLIEKvM
>>421
鼻から悪魔が出てくる
424デフォルトの名無しさん (ワッチョイ 7f81-WQfa)
垢版 |
2021/08/25(水) 01:30:07.26ID:6n+Di1sM0
>>423
どういうことですか?
2021/08/25(水) 01:52:34.44ID:7J8MKXIfa
>>421
酔ってるからかもしれないけど、質問の意味からして分からない
実装によるだろうけど、動的に確保されるオブジェクトはヒープに確保されるだろうし
黙ってれば確保したメモリへのアドレスを保持するポインタはスタックに置かれるし
実装によるけど
426デフォルトの名無しさん (ワッチョイ 7fad-WNkQ)
垢版 |
2021/08/25(水) 02:58:06.66ID:kk6d2P3X0
>>422
定番って言えそうなほど使われているソースを見たことないなあ。
427デフォルトの名無しさん (ワッチョイ 7fad-WNkQ)
垢版 |
2021/08/25(水) 03:01:55.29ID:kk6d2P3X0
>>421
alloca()でメモり確保した場合のことを言ってるの?だとすればfree()しちゃダメだよ。やってしまった場合にどうなるかは使っているライブラリによるんじゃないかな。そういう呼び出しを想定していないライブラリだと落ちるかも知れない。
2021/08/25(水) 03:30:51.31ID:BzERENYF0
>>424
未定義のこと。
C における未定義は何が起きても構わないことを意味する。

あるときネットニュース上でそれを説明するやりとりがあって、
あらゆることが起こりうるという例として鼻から悪魔が出てくる
ことも含まれるというような言い回しが使われた。
https://groups.google.com/g/comp.std.c/c/ycpVKxTZkgw/m/S2hHdTbv4d8J

それが定着して未定義のことを鼻から悪魔というのが通例になっている。
2021/08/25(水) 05:56:16.97ID:oIlmdH3GM
>>426
ちょっとググればすぐに出てくるぐらいには使われてる

char hex_from_nibble(unsigned char n){
return "0123456789ABCDEF"[n & 0xf];
}
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13162097918
430デフォルトの名無しさん (エムゾネ FF9f-tXhk)
垢版 |
2021/08/25(水) 09:19:52.23ID:U8ZXR+0VF
>>421
やってみろ
ほとんどの場合は何も起こらない
2021/08/25(水) 09:57:31.74ID:U3t+QZRrK
>>421
スタック…と言うかmalloc(calloc/realloc)で確保したポインタ以外をfreeすると何がおこるか判らない(鼻から悪魔)。
実際の話だと、大抵の実装ではmallocは確保した領域に管理情報を埋めて返し、freeはその管理情報を見て解放処理をする。この場合、管理情報がデタラメになるのでメモリアクセス違反でプログラムが落ちる事が多い。
2021/08/25(水) 10:00:41.38ID:VHSVWUHA0
freeは何もしないことも許される、なんて言って呼び出しそのものを否定するやついたな昔
2021/08/25(水) 11:31:20.70ID:hlr8Pa7o0
ほとんどの場合は、無人の荒野を爆撃するだけだろうが
いつかは住民が住んでいるところを攻撃するぞ
434デフォルトの名無しさん (ワッチョイ 7f81-WQfa)
垢版 |
2021/08/25(水) 12:30:15.33ID:6n+Di1sM0
僕はc言語自体初心者だったのですが、stack領域で確保したポインタをfreeするというのは以下のコードを指すつもりで言ってました。
int a;
free(&a);
鼻から悪魔が出るというのは未定義動作になると言うのを言うんですね。また一つ勉強になりました。
2021/08/25(水) 12:58:42.10ID:hlr8Pa7o0
ポインタでもないし、何をしたいかが分からん
この時空を破壊したいなら、もっと考えてからにして
2021/08/25(水) 13:00:03.19ID:wz3i5qam0
>>422
俺は愛を信じないので、そのコードはちょっと怖いかな
範囲内という前提があるだろうけど、なんかはみでそう
437デフォルトの名無しさん (ワッチョイ 7f81-WQfa)
垢版 |
2021/08/25(水) 13:41:27.53ID:6n+Di1sM0
>>435
ポインタとアドレス同じ意味で使ってます
2021/08/25(水) 13:46:43.33ID:f+OmsRJCr
>>434
ちなC++触りだすとスコープ{}内で宣言したものはスコープ出たところで
勝手に始末されるちゅー理屈で実装することも増えると思う。
でかい一時配列とかスタックに置きたくもないしいちいちfreeとかdeleteのこと考えたくないから。
変な所でreturnとかしたらfree忘れちゃう。C言語だとその辺は厳格にしないといけない。

あと、ローカル変数のアドレスをあまり気安く使ってると、そのうち関数抜けて廃棄された
アドレスを参照してしまうバグをだしちゃうかも。一度位は通る道かもね。
439デフォルトの名無しさん (ワッチョイ 1f85-tXhk)
垢版 |
2021/08/25(水) 19:45:37.21ID:s4bO6YKI0
>>433
中國のロケットの落下騒ぎを思い出したわ
2021/08/25(水) 22:01:22.70ID:ENQvEefU0
>>435
>>434の&aはポインタだが
2021/08/25(水) 22:22:45.99ID:hlr8Pa7o0
>>440
では、何をfreeしたのか、説明して
2021/08/25(水) 22:46:23.25ID:SkXNk2uR0
ポインタはアドレスを格納する変数
&aはアドレスだが変数ではないのでポインタではない
2021/08/25(水) 23:25:02.44ID:/Q8zinJC0
>>442
いいえ。 ポインタ型の値がポインタです。 (See C99 6.2.5)

C の用語ではメモリ (ストレージ) を占めるものがはオブジェクトで、それを型で意味付けしたものを値 (value) と言います。
実体としては同じですがレイヤによって呼び方が変わる場合があり、アドレスとポインタの違いも同様のものと考えられます。
2021/08/25(水) 23:28:23.41ID:F2PvOiSs0
>>442
何年か前にも見た覚えのある言説だな。元は何だろう?
2021/08/26(木) 01:58:36.79ID:aNUIA15f0
int *p; // ポインタ変数またはポインタ
int a;
&a; // アドレスまたはポインタ
int b = &a; // bはアドレス値の入った整数
int *c = &a; // cはポインタ

こういうこと?
アドレスとポインタは明確に区別されてるの?
2021/08/26(木) 02:10:26.24ID:/WHSCxQr0
 int a;
 int *b;

 b = &a;
 &a = b;
2021/08/26(木) 02:21:59.91ID:aNUIA15f0
>>446
なるほど?
2021/08/26(木) 02:37:50.30ID:aNUIA15f0
>6.5.3.2 アドレス及び間接演算子
>単項&演算子は,そのオペランドのアドレスを返す。オペランドが型“?型”をもっている場合,結果は,型“?型へのポインタ”をもつ。

だからアドレスとポインタどっちでも良いんじゃないの
2021/08/26(木) 07:03:21.90ID:H9rsGF960
&aはint*型のアドレス値(右辺値)で、変数ではないから代入は出来ない。
言葉の厳密な定義は知らんが、自分はポインタは型に紐付いたアドレスと理解してる。

組み込みなんかで
uint32_t a = 0x4020000;
...
*(int*)a = 1;
とか書くけどa自体はただの整数値だしね。
2021/08/26(木) 09:15:02.06ID:GExK9GsR0
>>448

int a=51; // 中山美穂の年齢
&a; // アドレス
(int*)&a; // ポインタ
*(int*)&a; // 中山美穂の年齢
2021/08/26(木) 09:25:24.33ID:IpfDe45b0
アドレスも年齢も表現の対象
ポインタとintが型の名前
2021/08/26(木) 09:26:46.39ID:IpfDe45b0
ageMipoとioDirectionがアプリケーションハンガリアン
iMipoとpDirectionがシステムハンガリアン
453デフォルトの名無しさん (ワッチョイ 7f81-WQfa)
垢版 |
2021/08/26(木) 14:51:44.03ID:BSY6c8/C0
>>441
みればわかりますよね?
2021/08/26(木) 16:05:40.12ID:oVdr9HnU0
言語仕様の文面の上ではアドレスとポインタの区別ははっきりしないので同一視してもかまわないとは思う。
少なくともポインタという用語がポインタ型の変数を指すという主張には賛成できないというだけ。

ただ、言語仕様の範囲内ではそれでいいんだけども言語仕様の範囲外というか実装上の理屈では区別している場合がある。
言語仕様上はポインタの比較は同一の配列 (または集成体オブジェクト) 内の要素を比較した場合や
ヌルポインタとの比較についてしか定義されておらず、それ以外は未定義であると明記 (C99 6.5.8 参照) されていて
関連のない場所のポインタの比較であることが静的に把握できるときは定数に置き換える最適化が適用されることもあるんで
アドレスを比較した通りの結果になるとは限らない。
https://wandbox.org/permlink/SqW5wzZM3fD912Nh
そんなわけでポインタが素朴なアドレス (実体が整数値) だと思っていると思わぬ結果を生むことも有る。
2021/08/26(木) 16:26:17.74ID:IpfDe45b0
気持ちだけは、俺も昔そう思いたかったことがあるけど
JIS X3010ではそうなっていないので、その気持ちはきっぱり捨てた
2021/08/26(木) 16:56:32.08ID:GExK9GsR0
int a; のときに &a+1 とかやると sizeof(int) 進むのね!
マジかよ知らなかった!

じゃあこの &a はほぼポインタだと思っていいのかな? いいの?
2021/08/26(木) 17:01:04.55ID:IpfDe45b0
「ほぼ」じゃなく明白にポインタ
2021/08/26(木) 17:09:18.58ID:oVdr9HnU0
>>456
int a;
と宣言されているとき &a の型は int* で、これを「int へのポインタ」という。
定義上ポインタとされているものに合致する。
2021/08/26(木) 18:57:41.72ID:B7a9vIltM
aはint型の変数
&aは変数aをアドレス演算子&で評価した値
得られた値の型はintへのポインタ型int*
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況