私は、charを指すchar型のポインタを持っている:ビット単位の&?の実行中にコンパイラエラーが発生するのはなぜですか?
char *a = 'A';
そして、ビット単位の&
しながら:
*a & 0x11
を私はコンパイルエラーを取得しています。このエラーの原因は何でしょうか?
私は、charを指すchar型のポインタを持っている:ビット単位の&?の実行中にコンパイラエラーが発生するのはなぜですか?
char *a = 'A';
そして、ビット単位の&
しながら:
*a & 0x11
を私はコンパイルエラーを取得しています。このエラーの原因は何でしょうか?
に行うの方法は、唯一のアドレスを格納することができ
char i='A';
char *a = i;
または
char i='A';
char *a;
a=&i
のポインタです。
あなたは '&'が不足しているように見えます。 –
私は私の質問を適切に作成できないと思う。私はこのように書きます。私は0x11でchar a = Aをビットごとにやりたい。そのコンパイルエラーです。 (&0x11) – sandeep
a
は、メモリロケーション65の文字を指す変数です。通常、オペレーティングシステムは、そのようなアドレスへのアクセスを許可せず、セグメンテーション違反を与えます。
a
をポインタとして宣言しても、それは機能します。
char a = 'A';
char b = a & 0x11;
printf ("%x %x\n", a, b);
それでも、結果はchar
の符号の有無と使用される文字セットに依存します。
charへのポインタに文字('A'
、一重引用符)を間違って格納しています。この場合、文字列("A"
、二重引用符)へのポインタを格納することでこれを修正できます。これらの文字列は定数なので、const
も追加する必要があります。
const char *a = "A";
char v = (*a) & 0x11;
エラーとは何ですか? – leppie