포인터에 배열이름으로 대입
바론
질문 제목 : 포인터에 배열 대입.배열 이름을 포인터 처럼 쓸 수 있는걸로 압니다.
그래서 실험을 해 봤는데 이상해서 질문좀 드립니다.
질문 내용 :
예제 1)
char ar[] = abcde;
char *ptr = ar;
이렇게 하면 ptr포인터에 배열 이름 ar이 저장이 되는데요. 반면에...
예제 2)
char ar[] = abcde;
char *ptr;
ptr = ar;
이렇게 하면 에러가 나네요.
여태까진 빨간글 두개가 같은 걸로 개념을 잡고 있었는데,
무언가를 모르고 크게 착각하고 있는거 같습니다.
설명이 귀찮으시면 링크로 달아 주시거나, 힌트라도 부탁 드리겠습니다.
많은 가르침 부탁 드리겠습니다.
-
갅쥐누뉨
감사합니다.
그동안 몰랐던 새로운걸 또 깨달았네요. -
새콤이
char *ptr = ar; 변수 선언 = 컴파일시 처리해주는 초기화 구문이기 때문에 전역에 사용가능하지만
ptr = ar; 실행문 = 반드시 함수 안에서 써주어야 합니다. -
집1어치워
수다님 답변 감사합니다.
또 이상한 점이 생겼네요. 수다님 소스처럼 메인 안에 넣으면 에러가 없는데....
#include stdio.h
char ar[] = \abcde\;
char *ptr;
ptr = ar;
void main()
{
\tprintf(\%d\\n\ -
으뜸
테스트를 해봐도 오류가 나오지를 않는데 어떤 에러가 나는걸까요? 제가 테스트한 코드는 아래..
#include stdio.h
int main(void)
{
char ar[] = \abcde\;
char *ptr;
ptr = ar;
printf(\%d\\n\