C言語なら俺に聞け 156

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9bb7-/QqT)
垢版 |
2020/09/28(月) 14:41:30.00ID:QxfbhGyV0
!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言語なら俺に聞け 155
https://mevius.5ch.net/test/read.cgi/tech/1589120427/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2020/10/26(月) 15:20:36.35ID:lJWYL04O0
ポインタ(アドレス)の距離を求めるのに ポインタ値を整数化することはあるかもしれないしエラーにはならんね
unsigned long c1 = (unsigned long)p1;
unsigned long c2 = (unsigned long)p2;
c1 - c2 のような (p1 - p2 はあくまで要素数だしね)
2020/10/26(月) 15:49:43.24ID:qF0DukLxF
#include <iostream>
using namespace std;

class A{public: int a; A(int b):a(b){}};

int main() {
A a(123), b(456);
A *p = &a, *q = &b;
unsigned long r = (unsigned long)p, s = (unsigned long)q;
cout << s - r << endl;
cout << (unsigned long)q - (unsigned long)p << endl;
cout << (unsigned long)&b - (unsigned long)&a << endl;
cout << (unsigned long)&q - (unsigned long)&p << endl;
return 0;
}
特に問題無いか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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