&와 *의 사용에 관한 명확한 이해
제나
열혈강의 상으로 듣기로는 *의 역할은 세가지라고 들었습니다
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를 출력할라 하면
에러가 나서 실행이 안되고요
제가 물어보고 싶은것은 간단히 말해서
저는 지금 포인터를 이제 막 입문한 완전 병아리 인데
계속 의문이 드는게 코드를 짜면서도
언제 &를 쓰냐 안쓰냐
언제 *를 쓰냐 안쓰냐
도저히 구분이 안갑니다
물론 그냥 대충 &넣어봤다가 에러 뜨면 어 뺴볼까? 어 되네
*넣어봤다가 어 되네 어 안되네 하면서 대충 코드를 짤수있습니다만
명확한 이해를 하고싶습니다
누구 좀 명확하게 설명좀 해줬으면 감사하곘습니다}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2693928 | &와 *의 사용에 관한 명확한 이해 | 제나 | 2025-05-06 |
2693903 | 반복문 설명좀요 ㅠㅠ (2) | 란새 | 2025-05-06 |
2693869 | stdio.h 는 왜 쓰는건가요? (1) | 큰꽃들 | 2025-05-06 |
2693842 | 포인터 변수의 주소값끼리 더하는 것에 대해서 질문드립니다. (1) | 진솔 | 2025-05-05 |
2693811 | 소수 출력;;;; | 화이트캣 | 2025-05-05 |
2693788 | 이런 함수는 없나요? (3) | 앤드류 | 2025-05-05 |
2693758 | txt파일 불러와서 행렬로 저장 | 큰애 | 2025-05-05 |
2693727 | scanf 오류 문제!! (2) | 큰나래 | 2025-05-04 |
2693704 | 구조체 주소록 문제인데 도와주세요 (2) | 도1도캣 | 2025-05-04 |
2693676 | 열혈강의 c언어 질문입니다 | 하양이 | 2025-05-04 |
2693647 | 12.620000 을요 12.620 으로 어떻게 표현해요? (2) | 파도 | 2025-05-04 |
2693619 | 타이틀 코드.. | 단순드립 | 2025-05-03 |
2693591 | 컴파일 에러에서 질문드립니다 (3) | 게자리 | 2025-05-03 |
2693463 | 동적할당 이용시 fwrite사용을 어떻게 해야하나요..? (10) | 일본어못해요 | 2025-05-02 |
2693387 | 배열문제입니다 수정오류캡쳐했습니다 (6) | 연하얀 | 2025-05-01 |
2693356 | text 입출력 내림차순 질문입니다 ㅠ | 빛글 | 2025-05-01 |
2693328 | C언어를이용해서 .txt파일 외에 다른 확장자 파일 삭제가 가능한지.. (2) | 대나무 | 2025-05-01 |
2693299 | 파일입출력 바이너리파일 | 독특한 | 2025-04-30 |
2693273 | 오류 (1) | 귀1여운렩 | 2025-04-30 |
2693080 | visual studio 2008 express edition 등록키 말인데요 | 얀별 | 2025-04-28 |