형변환 질문입니다
푸른마을
2023.04.01
질문 제목 : 질문 내용 :
char message[100] 이라는 배열이 있다면
scanf(%d,&num) 이렇게 10을 입력하고
message[0] = (char)num; 이렇게 하면 message[0] 번째에 num 값을 넣는다는건데 왜 여기서 (char*)message 하면 에러가 발생하나요..
그리고 ...
scanf(%d,(int*)&message[4+1] 이렇게 해준다면 왜 여기서는 (int*)에다가 포인터를 넣는지 너무나 궁금합니다..
-
다와
배열의 이름은 배열의 시작 주소가 됩니다.
즉,
message는 &message[0]이 됩니다. -
알
message 는 char 100 개가 하나로 묶여있는 배열 변수입니다.
C에서는 이러한 배열변수에 묶음 자료 전체를 한꺼번에 할당 할 수 없고,
하나씩 할당해줘야 합니다. 이를 위해 배열변수를 묶음 자료의 시작 주소로 평가합니다.
이 시작 주소는 상수(그냥 값)입니다. 이것이 첫번째 에러가 나는 이유입니다. 변수(lvalue)가 아니므로...
두번째는 사실 불필요한 형변환이지만, 코드의 의도를 분명히 하는데 의미가 있어 보입니다.
즉, messa
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692510 | 함수형 중에서.. (6) | 한란 | 2025-04-23 |
2692483 | C언어 함수, Header | 떠나간그놈 | 2025-04-23 |
2692451 | 이 문제좀 풀어주세요 ^^ | 게자리 | 2025-04-23 |
2692424 | 2차원배열 자료입력질문이요! (1) | 똘끼 | 2025-04-22 |
2692401 | 유닉스안에서 C언어를 이용한 명함 만들기 입니다; 이해안가는 부분이있네요 | 2gether | 2025-04-22 |
2692374 | 고수님들 댓글 마니부탁해요!!! (2) | 엄지 | 2025-04-22 |
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |