2011-01-14 4 views

답변

-1

당신이 일을 끝낼 방법은 주소를 저장할 수 있습니다

char i='A'; 
char *a = i; 

또는

char i='A'; 
char *a; 
a=&i 

포인터입니다.

+0

'&'가 누락 된 것 같습니다. –

+0

나는 내 질문에 제대로 대답 할 수 없다고 생각한다. 나는이 방법으로 그것을 쓴다. 0x11로 char a = A를 bitwise하고 싶습니다. 그것주는 컴파일 오류. (& 0x11) – sandeep

5

a은 메모리 위치 65의 문자를 가리키는 변수입니다. 운영 체제는 일반적으로 그러한 주소에 대한 액세스를 허용하지 않으며 세그먼트 위반을 제공합니다.

a을 포인터로 선언하지 않으면 작동하지 않습니다.

char a = 'A'; 
char b = a & 0x11; 
printf ("%x %x\n", a, b); 

또, 결과의 부호의 char 및 사용 된 문자 세트에 의존한다.

3

문자 ('A', 작은 따옴표)를 char 포인터에 잘못 저장하고 있습니다. 문자열 ("A", 큰 따옴표)에 대한 포인터를 저장하여이 문제를 해결할 수 있지만,이 문자열은 상수이기 때문에 const을 추가해야합니다.

const char *a = "A"; 
char v = (*a) & 0x11; 
관련 문제