
No.2ベストアンサー
- 回答日時:
> 文字は文字コードを表す値になるため、
'Q'なら81、'a'なら97って値を指すだけで、それが文字なのかどうか?ってのは、コンパイラやコンピュータは気にしてくれません。
int a = 'Q';
int b = 'a;
printf("a+b=%d\n", a+b);
で、81+97の結果が得られます。
手元の環境だとwarningすら出ないです。
aから数えて0番スタートで何番目のアルファベットか?ってのを、
char c='f';
int n = (c-'a'); // nは5になるハズ。
とかって計算するのは、よくある方法ですし。
> なぜch=*qと書けたのか
qの指してるアドレスに入ってる0~255の範囲のchar型の値を、chに代入するだけだから。
charからintになるのは暗黙のキャスト?
No.5
- 回答日時:
> もう一つ、なぜ*qは宣言されていないのにエラーなく画像のプログラムで使えるのですか?
> 画像のプログラム
*qなんざ宣言されてないけど、プログラムの中でも使われていない。
つまり使われてないから問題が起きない。
No.4
- 回答日時:
>>もう一つ、なぜ*qは宣言されていないのにエラーなく画像のプログラムで使えるのですか?
ちゃんと以下の"char* p"で宣言されています。
for (char* p = str; *p ; p++)
No.3
- 回答日時:
> 個人的には型が同じでないと代入できないため、なぜch=*qと書けたのかよくわかりません。
強い型付けと弱い型付け:
https://ja.wikipedia.org/wiki/%E5%9E%8B%E3%82%B7 …
No.1
- 回答日時:
「char型」っていうけど実際には
何らかの (符号つきあるいは符号なしの) 整数を表す型
なんだよ.
「型が同じでないと代入できない」ってことは, たとえば
double x;
x = 0;
は「ダメ」だと思っている, ということでいい?
この回答へのお礼
お礼日時:2021/07/28 18:53
思っていません。しかし。char型で*qは一文字を表します。そしてchはint型ゆえに整数しか扱えないです。なぜ代入できるかわかりません。
それともわたしの仮説通り
int型のchに代入する事で文字、すなわち文字コードが代入する側の値を扱うint型により文字は文字コードを表す値になるため、画像のようにch=*qとおけた
というわけでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
aspでユーザー定義の構造体を作...
-
C言語において、 配列要素をひ...
-
C言語 配列の長さの上限
-
C++で、メンバもヒープに確保さ...
-
ポインタに ~0を入れること
-
x64環境で連続4GB以上のメモリ...
-
vbでDataTableの抽出コピー
-
VBを2008を用いてCSVを取り込む...
-
Visual Basic 6.0 と8.0と2015
-
配列を返り値、でエラー
-
9枚の写真がA4 1枚に印刷できま...
-
PHP MySQL自動連番で削除された...
-
配列で格納したものをmsgboxで...
-
c言語
-
【速いブラインドタッチ】手を...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
RGB値を画像(PNG・BMPJPEGなど)...
-
関数のパラメタ(C++)
-
関数から配列を返すには?
-
CopyMemory()をmemcpy()に書き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのプログラムで、DIAG = 1# ...
-
Integer変数をカラにしたいので...
-
「#undef」と「#define」の使い...
-
リッチテキストボックスの中身...
-
構造体のデータを丸ごとコピー...
-
構造体の初期化方法について
-
C言語 構造体の中に共用体を定...
-
構造体にする理由・利点・使用例
-
VBAの変数のデータ型を変更する...
-
命名規則 VB 構造体
-
VBAにてcolorindexを変数に格納...
-
aspでユーザー定義の構造体を作...
-
charとucharの違い
-
typedefをプログラム中で解除す...
-
long型のデータをバイト型の配...
-
構造体のポインタにNULLが入らない
-
値が代入されてない時
-
C++ 構造体の一括初期化 {0}
-
整数から16進数への変換 現在c...
-
関数の引数の順番の混乱を回避...
おすすめ情報
もう一つ、なぜ*qは宣言されていないのにエラーなく画像のプログラムで使えるのですか?