반응형
●포인터 - 메모리의 주소값을 저장하기 위한 변수
●
&a - 변수 a의 주소값을 반환
*a - 포인터a가 가리키는 메모리를 참조
●*
- 곱셈
ex) a*b
- 포인터 선언
ex) int *a
-포인터 접근
ex) *a
●배열 이름은 포인터 상수이다. 배열이름은 첫번재 요소의 주소값이다
ex)
int a[5]={~~~}; // 여기에서 'a'가 배열 이름이고 배열의 첫번째 요소의 주소를 저장하는 포인터이다
●문자열은 주소값으로 저장된다, 그래서 문자열선언은 배열을 만들어서 한다
ex)
chat a[5]="good";
char *str="abcd";
●
직접접근 - 변수를 통한 접근
간접접근 - 포인터를 이용한 접근
●구조체
ex)
struct A{
int x;
int y;
};
struct A a; //구조체 변수 선언시 struct라는 키워드를 반드시 붙여줘야함
a.x=10;
a.y=20;
●구조체 선언과 동시에 초기화
ex)
struct person{
char name[20];
char phone[20];
int age;
};
struct person p1 = {"a", "0", 20); //순서 중요
struct person p2 = { .age=20, .name-"a", .phone="1"}; //이방법은 순서 안 중요
●typedef - 이미 존재하는 자료형에 새로운 이름을 붙이기 위한 용도
ex)
typedef int INT;
typedef struct data DATA;
●구조체 정의와 typedef 동시에 선언
ex)
typedef struct DATA{
int a-1;
int b=2;
} DATA;
●메모리
데이터 영역 - 전역변수와 static변수가 할당되는 영역, 프로그램 시작 종료시
스택영역 - 지역변수와 매개변수가 저장되는 영역, 함수 호출 종료시
힙영역 - 프로그래머가 관리하는 영역, 동적할당시
●malloc, free - 힙에 할당,해제하는 함수, #include<stdlib.h>써야함
●배열 선언은 반드시 상수로 해야한다. 스택과 데이터영역에 할당될 메모리는 컴파일 하는 동안 결정되기 때문이다. 배열 길이를 변수로 선언하기 위해선 동적할당을 해야한다.
●포인터 - 메모리의 주소값을 저장하기 위한 변수
●
&a - 변수 a의 주소값을 반환
*a - 포인터a가 가리키는 메모리를 참조
●*
- 곱셈
ex) a*b
- 포인터 선언
ex) int *a
-포인터 접근
ex) *a
●배열 이름은 포인터 상수이다. 배열이름은 첫번재 요소의 주소값이다
ex)
int a[5]={~~~}; // 여기에서 'a'가 배열 이름이고 배열의 첫번째 요소의 주소를 저장하는 포인터이다
●문자열은 주소값으로 저장된다, 그래서 문자열선언은 배열을 만들어서 한다
ex)
chat a[5]="good";
char *str="abcd";
●
직접접근 - 변수를 통한 접근
간접접근 - 포인터를 이용한 접근
●구조체
ex)
struct A{
int x;
int y;
};
struct A a; //구조체 변수 선언시 struct라는 키워드를 반드시 붙여줘야함
a.x=10;
a.y=20;
●구조체 선언과 동시에 초기화
ex)
struct person{
char name[20];
char phone[20];
int age;
};
struct person p1 = {"a", "0", 20); //순서 중요
struct person p2 = { .age=20, .name-"a", .phone="1"}; //이방법은 순서 안 중요
●typedef - 이미 존재하는 자료형에 새로운 이름을 붙이기 위한 용도
ex)
typedef int INT;
typedef struct data DATA;
●구조체 정의와 typedef 동시에 선언
ex)
typedef struct DATA{
int a-1;
int b=2;
} DATA;
●메모리
데이터 영역 - 전역변수와 static변수가 할당되는 영역, 프로그램 시작 종료시
스택영역 - 지역변수와 매개변수가 저장되는 영역, 함수 호출 종료시
힙영역 - 프로그래머가 관리하는 영역, 동적할당시
●malloc, free - 힙에 할당,해제하는 함수, #include<stdlib.h>써야함
●배열 선언은 반드시 상수로 해야한다. 스택과 데이터영역에 할당될 메모리는 컴파일 하는 동안 결정되기 때문이다. 배열 길이를 변수로 선언하기 위해선 동적할당을 해야한다.
반응형
'프로그래밍 > c언어' 카테고리의 다른 글
c언어 텍스트 파일의 내용을 거꾸로 표시하는 프로그램 소스 (0) | 2012.02.07 |
---|---|
c언어 기본 문법 정리4 (0) | 2012.02.04 |
c언어 기본 문법 정리2 (0) | 2012.02.04 |
c언어 기본 문법 정리1 (0) | 2012.02.04 |
열혈강의 c 28장 도전 프로그래밍 four 1,2,3 (0) | 2011.04.13 |
댓글