&와 *의 사용에 관한 명확한 이해
제나
열혈강의 상으로 듣기로는 *의 역할은 세가지라고 들었습니다
1. 곱하기 연산자
2. 포인터 선언할떄
3. 가리키는곳으로 접근할떄
&의 역할은
해당 변수나 상수의 주소값을 반환하는거요밑에 코드를 봐주세요
void main()
{
int n = 10;
int *p = &n; // n의 주소값을 반환한것(&의 역할)을 포인터 변수 p에 저장
char *str2 = ABCD;// 얘는 &가 없는데도 알아서 A문자의 가장 첫주소값을 찾아가서 포인터 변수 str2에 저장합니다
왜 그런거죠? 주소값을 반환한다고 선언도 안했는데 어떡해 알아서 접근하는거죠? 이해가안가네요
printf(%d \n, *p); //p가 가리키는것으로 접근한다 즉, 10이 출력
printf(%d \n, p); // p에 저장되는것은 n의 주소값 즉, 주소값이 출력
printf(%s \n, str2);
printf(%s \n, *str2);//문제는또 문자열입니다. 위에 int값과 마찬가지로 str2를 출력하면 A문자의 가장첫주소값이
출력되야 되는것 아닌가요? 근데 주소값이 아니고 ABCD 문자열이 출력합니다 밑에처럼 *str2를 출력할라 하면
에러가 나서 실행이 안되고요
제가 물어보고 싶은것은 간단히 말해서
저는 지금 포인터를 이제 막 입문한 완전 병아리 인데
계속 의문이 드는게 코드를 짜면서도
언제 &를 쓰냐 안쓰냐
언제 *를 쓰냐 안쓰냐
도저히 구분이 안갑니다
물론 그냥 대충 &넣어봤다가 에러 뜨면 어 뺴볼까? 어 되네
*넣어봤다가 어 되네 어 안되네 하면서 대충 코드를 짤수있습니다만
명확한 이해를 하고싶습니다
누구 좀 명확하게 설명좀 해줬으면 감사하곘습니다}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2697761 | 그러니까여제말은... (2) | 새론 | 2025-06-10 |
2697737 | 정올 문제좀 풀어보신분~ | 레오 | 2025-06-10 |
2697709 | rand함수 질문좀요! (6) | 가막새 | 2025-06-10 |
2697683 | C언어 변수뒤 표시가 이해안되는게 있습니다. | 소미 | 2025-06-10 |
2697660 | 껍데기딜 만들고 난후 어느핫키 누르면 코드검색이라도 뜨고 그다음 무반응 해결좀 (2) | 움찬 | 2025-06-09 |
2697634 | c언어로 감성사전 만들기! (1) | 도란도란 | 2025-06-09 |
2697605 | 이 함수좀... | agine | 2025-06-09 |
2697574 | 배열 기본적인질문 (3) | 민트향 | 2025-06-09 |
2697549 | 배열 초기화 (4) | 나리 | 2025-06-08 |
2697465 | 수다님...^^ (2) | 가론 | 2025-06-08 |
2697432 | 서버 만드는 함수에서 궁금한게있어요~ | 파랑 | 2025-06-07 |
2697401 | 열혈강의 문제오류 (1) | 꿈 | 2025-06-07 |
2697374 | 기초적인 C언어 프로그래밍 입니다. | 얼 | 2025-06-07 |
2697341 | 좌우대칭 문제인데 Q가 입력되면 종료가 되야하는데 되지않습니다 | 무지개 | 2025-06-07 |
2697314 | fprintf와 fscanf 로 파일 입출력 할떄 | 밝음이 | 2025-06-06 |
2697293 | 툴 소스 뽑아내는법 | 도움 | 2025-06-06 |
2697264 | 소소한거 두어가지 질문할께요~ (8) | 별솔 | 2025-06-06 |
2697235 | scanf로 인풋 받을 때?! | 보담 | 2025-06-06 |
2697207 | 열혈강의 연습문제 질문이요~ (2) | 맥적다 | 2025-06-05 |
2697182 | strcmp, strtok - 어떤 기능을 하는지... | 루다 | 2025-06-05 |