
스토리지 클래스 #기초이해 1. 기억부류(스토리지 클래스) 변수나 함수를 선언할 때 사용되는 키워드 변수나 함수의 저장위차와 사용범위를 결정 변수나 함수 선언시 맨 앞에 지정 변수의 디폴트 기억 부류는 auto이고, 함수의 디폴트 기억 부류는 extern 기억 부류 데이터형 변수명; 기억부류 리턴형 함수형(매개변수 리스트); 2. auto변수 지역변수는 디폴트로 auto 기억 부류를 사용 - auto 지역 변수는 선언된 위치에서 자동으로 생성되고, 선언된 블록을 빠져나갈 때 자동으로 해제됨 for 루프에서 선언시 루프내에서만 통용 3. register 변수 변수를 메모리에 할당하는 대신 cUP의 레지스터에 할당 변수를 레지스터에 할당하면 변수에 더 빠르게 접근 보통 루프 제어 변수를 레지스터 변수로 선언..

함수의 인자 # 매개변수 1. 개념이해 함수에 전달하는 값[매개변수(parameter), 인자(argument)] 형식 매개변수 : 함수 정의에서 기술되는 매개변수 목록 실매개변수 : 함수 호출에서 기술되는값, 인자 2. 호출방식 call by value : 인자의 값을 함수 정의에 있는 매개변수로 복사에서 전달하는 방식 call by referecn -인자의 참조값을 함수 정의에 있는 매개변수로 전달하는 방식 -변수의 값을 복사해서 전달하는 대신 변수의 주소를 전달하는 방식 -호줄된 함수에서 값을 호출한 곳으로 리턴의 용도로 사용가능 # 다양한 인자전달 1. 배열전달 배열은 포인터 전달 방법을 이용 함수의 매개변수는 배열의 원소에 대한 포인터형으로 선언 2. 구조체 전달 구조체 전달시 포인터 전달의 장..

공용체와 열거체 #공용체 1. 공용체 활용 -동인한 저장 장소에 여러 데이터 타입을 저장하는 자료구조 멤버들이 메모리를 공유해서 사용하는 기법 공용체의 크기는 공용체의 멤버중 가장 크기가 큰 멤버에 의해 결정 union 공용체면 { 멤버; 멤버; }; 공용체 변수를 초기화 할때는 첫 번째 멤버의 초기값만 지정 union 공용체면 { 멤버; 연산자를 사용함 2. 비트필드 구조체가 가진 멤버를 비트 단위로 사용 비트 필드정의 -멤버이름 : 비트수 기술 struct Date { int day :5; int month :4; }; 메모리에 할당할때, 첫번째 멤버를 최하위 비트에서 부터 할당 비트 필드의 멤버에 표현 가능한 범위 밖의 값을 저장하면 오버플로우 비트필드를 정의할때는 중간에 일부 비트를 비워두고 멤버..

구조체 #구조체 이해 1. 구조체란? - 사용자 정의 데이터 타입 - 관련있는 데이터를 묶어서 처리할 수있는 자료구조 - 서로 다른 데이터 타입의 묶음 - 서로다른 데이터 타입을 묶어서 처리할 수있도록 사용자가 정의하는 데이터 타입 2. 구조체 정의방법 - 구조체의 멤버로 일반 변수 뿐만 아니라 배열이나 포인터 선언 가능 - 구조체를 정의하면 새로운 데이터형이 만들어짐 - 구조체 정의 -> 메모리 할당의 의미는 아님 - 구조체형 변수 선언 -> 메모리에 할당 ex) struct 구조체명 { 데이터형 멤버명; 데이터형 멤버명; ..... } 구조체의 크기는 모든 멤버들의 크기의 합보다 크거나 같음 구조체 멤버 중 가장 큰 멤버의 크기를 기준으로 멤버 할당 구조체의 크기를 구하려면 sizeof연산자를 이용함..

포인터와 문자열 ># 포인터 배열 1. 2차원 배열과 포인터 str[3][10] -> str = str[0] = strt[0][0] 2. 문자형 포인터 문자열 상수를 문자형 포인터 변수에 저장 출력 puts(p); printf("%s", p); char a[] = "Hello World!"; a[5] = '\0'; printf("%s %s", a a+6) -> "Hello" , "World!" ex) char *str = "goood morning";에서 str의 문자열을 거꾸로 출력하는 프로그램 #include int main() { char *str = "good morning"; int i, count = 0; while(str[i]) { coun++; } for(i = count -1; i >= ..

포인터 활용 # 포인터와 배열 1. 포인터로 배열 참조 배열명: 별의 시작 주소를 의미하는 상수 배열의 시작 주소를 구할때는 & 없이 배열명만 사용 배열명을 포인터 처럼 사용 가능 - 인덱스를 사용하는 대신 배열의 시작 주소로 포인터 연산을 하면 배열의 특정 원소에 접근가능 *(arr+i)는 arr[i]를 의미 배열의 시작 주소로 초기화된 포인터를 이용해서 배열의 모든 원소에 접근가능 포인터 변수를 배열 이름인 것처럼 사용 가능 포인터와 +,- 연산 ex) int arr[5] = {12, 25, 37, 49, 53}; int *p =arr; *p+1 -> 13 *(p+2) -> 37 arr + 3 -> arr[3]의 주소 *(arr+3) -> 49 *arr+4 -> 16 p[4] -> 53 &arr[2]..

포인터 기초 #포인터 이해 1. 포인터 개념 포인터 : 특정 위치를 가리키는 주소 정보 포인터 변수 : 포인터(주소)를 저장하는 변수, 다른변수를 가리키는 변수 2. 포인터 변수 포인터 변수의 데이터 타입은 포인팅하는 변수의 데이터 타입과 동일한 타입으로 선언 char* a; int* b; sizeof() 연산자 int sizeof(int) : 매개변수에 기술한 공간의 크기를 정수값으로 반환함 3. 포인터 초기화 & : 주소 구하기 연선자 & 데이터 변수 : 변수의 주소를 의미 * 포인터 변수 : 포인터 변수가 가리키는 주소의값 ex) int a =5; int *pa = &a; 결과값 -> a변수의 주소 #포인터 이용 1. 포인터 다루기 #include int main() { int a=9; int *p..

문자열 #문자열 이해와 1. 문자열 기초 문자열 : 연속된 문자들의 모임 - 문자열은 큰따옴표("")로 표현함 - 문자열의 끝에는 널 문자('\0')를 함께 저장함 문자열 상수 - 값이 변경되지 않는 문자열 - "A"나 "Hello World"등 - 문자열 리터럴이라고도함 문자열 변수 - 프로그램 수행중에 변경될 수 있는 문자열 문자 배열 - 선언 : 문자 배열의 크기는 저장할 문자 수 + 1 크기로 지정 - 초기화 : " "문자를 대입연산자에 이용 2. 문자열 선언과 초기화 "Hello"를 저장 chare a[6] = "Hello"; 배열 크기의 -1개의 문자를 초기화 가능 # 문자열 입출력 1. 문자열 표준 입력 1) scanf() 입력된 문자열을 str 배열에 저장 공백 또는 enter 전까지 입력..