&와 *의 사용에 관한 명확한 이해
제나
열혈강의 상으로 듣기로는 *의 역할은 세가지라고 들었습니다
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를 출력할라 하면
에러가 나서 실행이 안되고요
제가 물어보고 싶은것은 간단히 말해서
저는 지금 포인터를 이제 막 입문한 완전 병아리 인데
계속 의문이 드는게 코드를 짜면서도
언제 &를 쓰냐 안쓰냐
언제 *를 쓰냐 안쓰냐
도저히 구분이 안갑니다
물론 그냥 대충 &넣어봤다가 에러 뜨면 어 뺴볼까? 어 되네
*넣어봤다가 어 되네 어 안되네 하면서 대충 코드를 짤수있습니다만
명확한 이해를 하고싶습니다
누구 좀 명확하게 설명좀 해줬으면 감사하곘습니다}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2700562 | 함수포인터에서요 (7) | 소심한여자 | 2025-07-06 |
2700530 | 전처리문 질문입니다. (1) | 아놀드 | 2025-07-05 |
2700510 | c언어를 어케하면 잘할수 있을까요.. | 연연두 | 2025-07-05 |
2700484 | 두 개가 차이가 뭔지 알려주세요...(소수 찾는 프로그램) (2) | 날위해 | 2025-07-05 |
2700426 | 인터넷 창 띄우는 질문이요 (1) | 정훈 | 2025-07-04 |
2700400 | 원넓이를 계산이요 ㅜㅜ | 천칭자리 | 2025-07-04 |
2700368 | if에 관해서 질문이요... | Orange | 2025-07-04 |
2700339 | 이거 결과값이 왜이런건지.. (4) | 그댸와나 | 2025-07-04 |
2700313 | 파일 읽어서 저장하는데 빈파일일 경우 문재가 발생하네요.. (2) | 크나 | 2025-07-03 |
2700287 | 구조체 동적할당 연습을 하는데 오류가 뜹니다...(해결) (3) | 아련나래 | 2025-07-03 |
2700264 | 문자와 숫자 동시에 입력??? | 글고운 | 2025-07-03 |
2700236 | txt파일로만 쓰고 읽게 하려면 어떻게 해야 하나요..?? (8) | 미국녀 | 2025-07-03 |
2700211 | 전위 연산자 (2) | 어른처럼 | 2025-07-02 |
2700183 | C에서 파일이름을 받고, 그 파일의 사이즈를 출력해줘야하는데 내용이 출력이 안되네요 ;ㅅ; | 피스케스 | 2025-07-02 |
2700150 | 꼭좀 도와주세요ㅠㅠㅠ | 호습다 | 2025-07-02 |
2700095 | 연산문제...질문... | 오빤테앵겨 | 2025-07-01 |
2700070 | while문 , 3의배수 출력하는 프로그램좀 짜주세욤. | 횃불 | 2025-07-01 |
2700041 | 초보인데요 ㅎ 배열안에 배열을 집어넣을수 있나요?? | 헛장사 | 2025-07-01 |
2700012 | 배열// (1) | 전갈자리 | 2025-07-01 |
2699895 | 무한루프에 빠집니다.!! 해결좀부탁드려요 (10) | 선아 | 2025-06-30 |