== 배열 == Round 0,1 ---- 배열이 근본적으로 포인터란 것은 이미 알고 있었으나 실제 컴파일러에서 이런식으로 표현 된다는 것을 배웠다. ex) int arr[5]; 라고 한다면 printf("%d",arr); -> arr의 주소가 나온다. -> 포인터 연산자를 동원해서 표현하자면 &arr[0]이 된다. arr[i] = *&(arr[0]+sizeof(int)*i); arr[i][j] *&(arr[0][0] sizeof(int)*i*j+sizeof(int)*i); -> 맞겠지여...? 실제 메모리상에서는 2차원이든 3차원이든 메모리상에서는 그냥 선형으로 저장된다. 사실 이것도 새싹교실때 이미 배웠던 내용. 원희형.. 보고싶어요. == 포인터 == Round 0,1 ---- datatype* : 포인터 자료형 선언법 -> 이게 독자적인 자료형이라고 봐도 무관. *val_name : 해당 포인터변수가 가르키는 변수의 값을 참조 &val : &연산자 우측의 주소값을 불러온다.(이건 val자리에 들어가는 변수가 포인터 자료형이 아니여도 됨) 포인터 변수에 주소값이 저장된다고 생각하는것보다. 그 주소에 해당하는 변수를 가르킨다고 생각하는게 옳다. 다중 포인터도 배웠다. == 구조체 == Round 1 ---- 1. 선언법 1) typedef struct name{ data... data... ... }nickname; 사용할땐 nickname만 써주면 된다. 2) struct name{ date... ... } 사용할때마다 struct name 라고 해야한다. 3) typedef struct{ data... ... }nickname; 닉네임만 선언하는 방법. 비표준이란다. 2. 개념 의미가 통하는(?) 유용한 (?) 데이터들을 그룹화 한다고 생각하면 된다. 일단 해두면 sort할때 매우 편하다 한가지만 sort해두면 나머지도 따라오니까!