*의 피연자는 포인터여야 하는데 Int 형식이 있음이라는 에러가 날 때는 아마 포인터 배열을 사용한 경우일거다. void example(int * i){ int j = *i[1]; } int main(void){ int arr[4] = {1,2,3,4}; example(arr); } 라는 코드를 짜면 포인터여야 하는데 다른 형식이 있다는 에러가 뜰거다. 하이라이트 친 부분을 자세히 보면 알 수 있다.
나는 main함수에 arr을 선언하고 arr의 시작주소를 example함수의 매개변수인 포인터 i로 전달하였다. 그렇다면 arr의 시작주소는 i의 시작주소가 되어 i를 arr배열 그 자체처럼 쓸 수 있게 된다.
즉 *i[1]가 되면 안되고 i[1]이 되는 것이 맞다. 이 부분을 수정해주면 에러 없이 돌아가게 된다....
#
c언어
#
포인터
#
피연산자