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;
は「ダメ」だと思っている, ということでいい?
思っていません。しかし。char型で*qは一文字を表します。そしてchはint型ゆえに整数しか扱えないです。なぜ代入できるかわかりません。
それともわたしの仮説通り
int型のchに代入する事で文字、すなわち文字コードが代入する側の値を扱うint型により文字は文字コードを表す値になるため、画像のようにch=*qとおけた
というわけでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# c言語 int temp = 0; if(isdigit(arr[i])){ temp=arr[i] 2 2022/03/27 01:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Integer変数をカラにしたいので...
-
VBAのプログラムで、DIAG = 1# ...
-
C++ 構造体の一括初期化 {0}
-
構造体のポインタにNULLが入らない
-
long型のデータをバイト型の配...
-
「#undef」と「#define」の使い...
-
構造体のデータを丸ごとコピー...
-
異なる構造体のデータのコピー
-
値が代入されてない時
-
1バイトデータの読み出しについて
-
typedefをプログラム中で解除す...
-
命名規則 VB 構造体
-
C言語 構造体の中に共用体を定...
-
構造体の初期化方法について
-
変数の初期化について
-
VBAの変数のデータ型を変更する...
-
VBAで符号無し整数
-
構造体のメンバ初期化について
-
列挙子(enumlator)の内容を文字...
-
関数の引数の順番の混乱を回避...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのプログラムで、DIAG = 1# ...
-
Integer変数をカラにしたいので...
-
「#undef」と「#define」の使い...
-
C++ 構造体の一括初期化 {0}
-
構造体のデータを丸ごとコピー...
-
C言語 構造体の中に共用体を定...
-
VBAにてcolorindexを変数に格納...
-
long型のデータをバイト型の配...
-
値が代入されてない時
-
charとucharの違い
-
typedefをプログラム中で解除す...
-
構造体のポインタにNULLが入らない
-
異なる構造体のデータのコピー
-
整数から16進数への変換 現在c...
-
VB.NETのStructureというのはど...
-
VBAの変数のデータ型を変更する...
-
構造体にする理由・利点・使用例
-
winsockのsendtoで送れるデータ型
-
VBAで符号無し整数
-
命名規則 VB 構造体
おすすめ情報
もう一つ、なぜ*qは宣言されていないのにエラーなく画像のプログラムで使えるのですか?