Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

CNight2011/고한종: Difference between revisions

From ZeroWiki
imported>rino0601@naver.com
No edit summary
imported>rino0601@naver.com
No edit summary
Line 37: Line 37:
== 구조체 ==
== 구조체 ==
Round 1
Round 1
----


# 선언법
# 선언법

Revision as of 15:14, 20 May 2011

배열

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;
닉네임만 선언하는 방법. 비표준이란다.
  1. 개념
의미가 통하는(?) 유용한 (?) 데이터들을 그룹화 한다고 생각하면 된다.
일단 해두면 sort할때 매우 편하다 한가지만 sort해두면 나머지도 따라오니까!