• [잡담/일상] c언어 // 으음;; 문자포인터는2017.10.01 PM 01:53

게시물 주소 FONT글자 작게하기 글자 키우기

 

 

int a = 10;

float b = 20.1f;

double c = 30.1;

char d = 'G';


//- 위의 변수 a,b,c,d 에 대하여 포인터변수를 선언하고

//각변수의 주소를 포인터변수에 대입하세요.

//완성된 포인터 변수를 이용하여 변수에저장된값을 출력하세요.



int *pta;

pta = &a;

 

(a b c 는 생략)

 

 

 

 

 

printf("문자 d : %c \n", &d);

printf("*pta : %c \n", *pta);

printf("참고 : pta는 찾아갈 주소값이 저장되어있음\n : %c %c \n", &d, *pta);

printf("-----------------------------------\n");

 

 

int / float / double 까진 잘 나오는데...

 

char d = 'G'; 만 출력이 안되고

콘솔 창에서 그냥 오롷게 되어버리는데요.. -ㅅ- ;

 

%s 로하면 이상한 괴랄문자가 나오고 밑에같이 오류창 뜨게 되고..

 

c는 당연히 아스키코드가 나오는뎅..

 

G만 나오게 하려면 어떻게수정해야하나요;;;


 

 

2017-10-01 12;45;48.PNG

 

 

 

댓글 : 7 개
printf("문자 d : %c \n", d);
으어..&가 빠져야하는거군여;;
pta는 int형 포인터다 보니깐 printf에서 %d로 인식시켜야 하나 보네요.
아마 다른 형태로 불러오시려면 캐스팅 하셔야 할것 같습니다.

printf("문자 d : %c \n", d);
printf("*pta : %d \n", *pta);
printf("참고 : pta는 찾아갈 주소값이 저장되어있음 : %c %d \n", d, *pta);

이게 아마 원하시는 결과일 것 같습니다
으어..
printf("*pta : %c \n", *pta); 에선
문자를 못출력하는건가요?
%d는 a가 출력되는뎅 ;ㅅ;
? 가 출력되네요;;
G가 ..ㅠ
int a=10
int* pta = &a
*pta == a
a == int 10
출력 %c 캐릭터형을 출력한다는 약속문구죠
당연히 안됨
int를 강제로 char형으로 변환하기위해선 형변환이 필요하죠
%d 는 정수를 출력한다는 예약어니깐 애초에 int형인 a가 그냥 출력이되죠

printf 문법과 디버거를 확인해보세요
친구글 비밀글 댓글 쓰기