[過去ログ] C言語なら俺に聞け 162 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
653: (ワッチョイ 09f0-d20A) 2024/03/24(日)19:10 ID:9Ye9tMrz0(2/2) AAS
グラフ構造を使う場合は循環参照は容易に生まれるからな
PerlのScalar::Util::weakenで変数をラップしてやる
こうするとその変数は弱参照になる
654: (ワッチョイ 36e7-HgBz) 2024/03/25(月)11:18 ID:YX1noK3i0(1) AAS
弱参照ビオレ
655
(1): (ワッチョイ 6fb3-MjEX) 2024/04/11(木)18:10 ID:h5i5y7Gi0(1/3) AAS
#include <stdio.h>
#include <string.h>

void main(void)
{
 char c[32];
 char *pc;

 strcpy(c, "JAPAN-TOKYO-OSAKA");
 pc = &c[0];

 //for(int i=0; i<strlen(c); i++, *pc++){
 for(int i=0; i<strlen(c); i++, pc++){
省4
656
(1): (ワッチョイ 6fb3-MjEX) 2024/04/11(木)18:12 ID:h5i5y7Gi0(2/3) AAS
コメントアウトしてる方のforにしても出力結果は同じになります
*付きポインタ変数は、中身へアクセスを意味するからめちゃくちゃな文字列が出力されるはずじゃ・・・?

どうしてなの?
657
(1): (スッップ Sd02-nKjL) 2024/04/11(木)19:02 ID:/0XH+klGd(1) AAS
あなたが書いたのは*(pc++)を意味してます
658: (ワッチョイ 2363-Ky5X) 2024/04/11(木)19:16 ID:GKY1RwiV0(1) AAS
このソースを何という名前で保存して、何というコンパイラでコンパイルしたかとか、色々
659: (ワッチョイ 6fb3-MjEX) 2024/04/11(木)20:20 ID:h5i5y7Gi0(3/3) AAS
>>657
文句を行ってもしかたがない
そういうものとして納得するしかないんだろうけど、”おかしい”と思ってるCプログラマーは世界中に2億人くらいいると思う
660: (ワッチョイ 4ef0-WBP1) 2024/04/11(木)20:25 ID:RdqITFFi0(1/2) AAS
*も++も単項演算子で適用される優先順位がある
優先順位を意識してコーディングしないと痛い目に合う
a + b == cは想定通りだろうが、a & b == cは想定外の結果になるとかねw
661
(1): (ワッチョイ af69-zSwZ) 2024/04/11(木)20:54 ID:eGBAyvET0(1) AAS
足し算掛け算の掛け算をシフトに書き換えたら上手く動かなくなって焦った
662: (ワッチョイ 6f2a-MjEX) 2024/04/11(木)21:46 ID:6HtedQOj0(1) AAS
>>661
え、なぜ。
663: (ワッチョイ c261-Ky5X) 2024/04/11(木)22:53 ID:/Kb1qQiM0(1) AAS
シフト演算子は加減算より優先度低いのにカッコで囲わなかったって事でしょ
664: (ワッチョイ e279-V3xu) 2024/04/11(木)23:28 ID:0Tmkq/lZ0(1/2) AAS
まあ次がんばればいいよ
665
(1): (ワッチョイ 4ef0-WBP1) 2024/04/11(木)23:29 ID:RdqITFFi0(2/2) AAS
シフトは乗除っぽいイメージだから加減算よりも先でいいよなぁ
ビット演算子が比較よりも後なのは完全に仕様バグだろ…
666: (ワッチョイ e7df-6c53) 2024/04/11(木)23:37 ID:1F4I/FIC0(1) AAS
冴えてないときの自分のためにも、他人のためにも、なるべくカッコはつけるかな
667
(1): (ワッチョイ e279-V3xu) 2024/04/11(木)23:49 ID:0Tmkq/lZ0(2/2) AAS
いまさら言って仕方ない事をいちいち書くなよ
お前が次のC言語でも作って人生を棒に振ればいいだけだよ
668: (ワッチョイ 4ef0-WBP1) 2024/04/12(金)00:17 ID:nGLEgXOo0(1/4) AAS
>>667
便所の落書きにぶちギレw
お前の人生はいつも焦燥感に満ちてんだろうなw
669
(1): (ワッチョイ df01-B3tP) 2024/04/12(金)00:21 ID:GtdzNQir0(1) AAS
>>655
後に現れたC++のiostreamがシフト演算子をオーバーロードし入出力演算子として流用するのに
好都合で、思わぬ役に立つことになったからまあ良いだろ。もしシフト演算子が四則演算子より
優先順位が高かったら、cout << 1 + 2 * 3 << endl を cout << (1 + 2 * 3) << endl と
書かなければならず面倒だった。(C++がシフト演算子を全く別の機能に流用したのは不適切
だったという意見もあるが…)
670: (ワッチョイ 4ef0-WBP1) 2024/04/12(金)01:13 ID:nGLEgXOo0(2/4) AAS
>>669
シェルのリダイレクトと概念が一致してるから、最初見た時は天才かよと感心したな
でも、出力の整形が激ムズなんでやっぱり駄目じゃんと気付くまではそう思ってた
671: (ワッチョイ e2ad-lyNC) 2024/04/12(金)02:09 ID:Wv2Zy+UZ0(1) AAS
>>656
*pc++ はまず *pc の処理をする。これで pc の差している先にある値を取り出すことになる。その次に pc を一つ分進ませる(実際に加算される値は sizeof(*pc))。
では最初に *pc で取り出した値はどこへ行ってしまうのか? それは何にも使われずにただ捨てられる。
672: (ワッチョイ 4e28-Nnmc) 2024/04/12(金)07:08 ID:gi41fiD00(1) AAS
*pc++の形はcやってたら所々で見るから否応なく慣れる
個人的にはケチくさい書き方で避けたい気持ちもあるがまぁそういう文化が根付いてるなら合わせざるを得ない
1-
あと 330 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.034s