le_effort   5년 전

어쩔때는 &를 안쓰고 어쩔땐 쓰던데

제가 기억하는건 배열요소를 할땐 & 썻던거 같은데

그 배열도 포인터고 그래서 주소연산자를 안쓰는 때가 있던거 같은데 그게 뭐죠...?

두가지좀 명확하게 설명해주실수 있나요?

jaehoo1   5년 전

변수 앞에 &를 붙이면 그 변수의 주소값을 가리킵니다.

scanf()함수는 입력받은 값을 변수의 주소에 넣습니다

scanf("%d", &var);    //&var 는 var 의 주소

배열요소 할때 &를 쓴다는게 무슨 말인지 잘은 모르겠으나,

배열의 이름을 그대로 사용하면, 배열 첫번째 주소값을 나타냅니다.

int arr[5];

if(arr==&arr[0])puts("1");

출력 : 1

char str[5];

if(str==&str[0])puts("1");

출력 : 1

다만, 문자열을 입력할 땐 문자열이 시작되는 주소값을 전달해주는데,

배열 이름을 그대로 사용하면 배열 첫번째 주소값이라고 했습니다.

scanf("%s", str); == scanf("%s", &str[0]);

댓글을 작성하려면 로그인해야 합니다.