본문 바로가기
728x90

프로그래밍 언어/C5

지역 변수, 전역 변수, 정적 변수 지역 변수(local variable) 중괄호 내부, 함수의 매개변수에서 사용되는 변수 함수 안에서만 접근 가능하며, 벗어나면 사라짐 초기화하지 않으면 쓰레기값이 저장됨 Stack 영역에 메모리 할당됨 전역 변수(global variable) 중괄호 외부에서 선언되는 변수 어느 지역에서든 참조해서 사용 가능 프로그램이 시작될 때 생성 및 초기화되고 끝날 때 사라짐 반드시 상수(변수x)로 초기화해야 하며 초기화하지 않으면 0임 Data 영역에 메모리 할당 정적 변수(static variable) static이 붙여서 선언된 변수 전역 변수와 동일하지만 차이점은 초기화가 딱 한 번만 진행됨 함수의 매개 변수로 사용할 수 없음 Data 영역에 메모리 할당 정적 지역변수(static local variable).. 2023. 9. 23.
문자열, 공백 포함 문자열 입력 문자열의 선언과 초기화 char str1[10] = "ABCD"; char str2[10]; str2 = "ABCD" //오류 -> 초기화와 대입은 다름 포인터와 문자열 char st[] = "12345"; //배열에 의한 문자열의 크기는 6bytes char *pt = "12345"; //포인터에 의한 문자열의 크기는 sizeof(char *) + 6bytes 포인터는 문자열 리터럴을 저장하기 위한 영역 외에도 pt가 갖는 메모리 영역이 더 필요 pr을 위한 영역: sizeof(char*) 공백 포함 문자열 입력 받기 1. scanf("%[^\n]s",str); [^'문자'] : 해당 문자가 나오기 전까지 모든 문자열을 받겠다는 의미 [^"문자열"] : 문자열을 구성하는 문자 중 하나라도 나오기 전까지.. 2023. 9. 23.
goto문 지정된 라벨로 이동한 후 코드 실행 goto 라벨; 라벨 : 문장 2023. 9. 22.
매개변수 전달 값에 의한 전달(Call By Value) 호출 함수와 피호출 함수의 인자 값은 같지만 메모리는 독립적 int Add(int x, int y){ int x = x + y; return z; } int main(void){ int x = 3; int y = 5; int sum = Add(x, y); printf("%d", sum); //8 return 0; } 참조에 의한 전달(Call By Reference) 호출 함수와 피호출 함수의 인자는 같은 개체 호출 함수에서 메모리 주소를 전달 (포인터 매개 변수 사용) void swap(int *x, int *y){ int temp = *x; *x = *y; *y = temp; } int main(void){ int x = 3; int y = 5; swap(&.. 2023. 9. 22.
2차원 배열 동적 할당 int** answer = (int**)malloc(sizeof(int*)*num_list_len); for(int i=0;i 2023. 9. 21.