C12 문자열 앞으로 당기기 (메모리 이동) _memmove 보호되어 있는 글 입니다. 2025. 9. 30. [C언어] 입력값 저장 및 버퍼 초과시 예외 처리 보호되어 있는 글 입니다. 2025. 9. 24. 혼자 공부하는 C언어 (18~19강) 1. 파일 입출력2. 전처리와 분할 컴파일 파일 입출력파일 개방과 폐쇄fopen("파일이름", "모드")파일 개방 _ 파일을 입출력하기 전에 준비하는 과정파일 개방 실패 시, NULL 값 반환fclose(파일포인터);파일 폐쇄 _ 사용이 끝난 파일을 닫는 과정FILE *fp;fp = fopen("data.txt", "r");if(fp === NULL){ return 1;}fclose(fp); 기본적인 파일 개방 모드 정리모드의미설명파일이 없을 경우파일이 있을 경우"r"읽기읽기 전용으로 파일을 염열기 실패처음부터 읽기"w"쓰기쓰기 전용, 기존 내용 삭제새로 생성내용 모두 삭제"a"추가 (append)쓰기 전용, 항상 파일 끝에 데이터 추가새로 생성뒤에 이어서 씀스트림 파일과 파일 포인터스트림(Stre.. 2025. 9. 9. 혼자 공부하는 C언어 (17강) 1. 구조체 (사용자 정의 자료형) 와 연결 리스트2. 열거형 enum 구조체 (사용자 정의 자료형)구조체 struct다양한 자료형을 하나로 묶을 수 있는 복합 자료형 (사용자가 만드는 자료형)구조체 선언과 변수구조체 선언: struct 구조체명 { 구조체 멤버 }구조체 변수: struct 구조체명 구조체_변수명;구조체 변수를 선언 시 실제 저장 공간이 할당되며 메모리에 연속적으로 할당된다.함수 밖에 선언하면 함께 선언되는 변수가 전연변수가 된다. (-> 초기화 안 할 경우 0 자동 초기화)// 구조체 선언 방법struct Person { char name[20]; int age; float height;};// 구조체 변수 선언struct Person p1;구조체 멤버 접근 (멤버 접근.. 2025. 9. 7. 혼자 공부하는 C언어 (15~16강) 1. 이중 포인터와 2차원 배열 포인터2. 함수 포인터와 void 포인터3. 동적 할당 함수 이중 포인터와 2차원 배열 포인터이중 포인터가리키는 자료형 **포인터이중 포인터는 포인터 변수를 가리키는 포인터double a = 3.5;double *pi = &a;double **ppi = pi; 포인터 활용 1포인터 값을 바꾸는 함수의 매개변수int main(void){ char *pa = "success"; char *pb = "failure"; swap_ptr(&pa, &pb);}void swap_ptr(char **ppa, char **ppb){ char *pt; pt = *ppa; *ppa = *ppb; *ppb = pt;} 포인터 활용 2포인터 .. 2025. 9. 7. 혼자 공부하는 C언어 (13~14강) 1. 변수 사용 영역 (지역/전역/정적 지역/레지스터 변수)2. 함수의 데이터 공유3. 다차원 배열4. 포인터 배열 변수 사용 영역지역 변수 (local)[auto] 자료형 변수명;auto 예약어와 함께 함수 안에 지역 변수를 선언하며 auto 예약어는 생략이 가능하다.사용 범위는 블록 내부로 제한된다.변수가 선언된 함수가 반환되면 할당된 저장공간을 자동으로 회수한다.지역 변수 사용시 주의점지역 변수는 같은 변수명이여도 선언된 함수가 다르면 독립된 저장 공간을 갖는다.사용하는 변수가 여럿이면 가장 가까운 블록에 선언된 변수를 사용한다.전역 변수 (global)자료형 변수명;함수 밖에 변수를 선언하며 예약어가 따로 없다.사용범위가 함수나 블록에 제한되지 않고 프로그램이 실행될 때 메모리에 할당되고 종료될 .. 2025. 9. 7. 혼자 공부하는 C언어 (11~12강) 1. 문자2. 버퍼를 이용한 입력3. 문자열과 포인터4. 문자열 연산 함수 문자아스키코드모든 문자 상수는 아스키 코드 값으로 바뀌어 숫자로 저장되고 연산된다.알파벳과 숫자는 각각 연속된 아스키 코드 값을 갖는다.소문자 아스키 코드 값 > 대문자 아스키 코드 값문자 변환문자(%c)화이트 스페이스(공백, 탭, 개행 문자)도 입력된다.화이트 스페이스를 입력에서 제외하고 싶다면 %c 앞에 공백을 사용문자 입출력 전용 함수getchar()int getchar(void) : 키보드로 입력된 문자의 아스키 코드 값을 반환한다putchar()int putchar(int) : 문자 상수 혹은 아스키 코드 값을 인수로 주면 해당 문자를 출력하고 에러 발생시 -1을 반환 버퍼를 이용한 입력버퍼 (buffer)프로그램 실행 .. 2025. 9. 7. 혼자 공부하는 C언어 (9~10강) 1. 메모리와 변수2. 포인터3. 포인터와 배열 메모리와 변수메모리와 변수메모리는 데이터를 넣고 꺼내 쓰는 공간이다.메모리의 위치는 주소 값으로 식별할 수 있고 주소 값은 바이트(byte) 단위로 구분된다.int a; => 메모리를 100번지부터 할당한다 가정하면, 100~103번지에 총 4byte로 할당된다.주소 연산자 (&)&변수명변수가 할당된 메모리 공간의 시작 주소가 반환된다.메모리가 할당된 주소시작주소 + 변수의 크기메모리 주소의 출력 변환 문자주소는 보통 16진수로 표기전용 변환문자 %p (ex. printf("%p", &a); ) 포인터포인터변수의 메모리 주소를 저장하는 변수포인터가 필요한 경우임베디드 프로그래밍 시, 메모리에 직접 접근하는 경우 필요동적 할당한 메모리를 사용하는 경우 포인트.. 2025. 9. 6. 혼자 공부하는 C언어 (7~8강) 1. 함수 (선언 / 정의 / 호출 / 반환)2. 배열3. 문자열 저장 (char 배열) 함수함수 정의함수를 정의할 때의 질문 3가지 = 함수의 구성함수의 기능에 맞는 이름은 무엇인가? (함수명)함수가 기능을 수행하는데 필요한 데이터는 무엇인가? (매개변수)함수가 수행된 후의 결과는 무엇인가? (반환형) int sum(int x, int y) //함수 원형{ int temp; temp = x + y; return temp;}함수 호출호출할 함수명(인수1, 인수2);입력된 인수값은 호출된 함수의 매개변수에 복사되어 사용된다.sum(1, 2); //함수 호출함수 반환호출된 함수 실행을 끝내고 값을 반환할 때 return 문을 사용한다.함수의 실행을 끝내고 호출한 곳으로 돌아갈 때 사용.. 2025. 9. 5. 이전 1 2 다음