Programming/C

공부한 내용을 정리합니다
Programming/C

C언어 / 포인터 변수 선언 int *a = &b 인 경우

포인터 변수 선언 복습 더보기 포인터 변수 선언 int *a; a를 포인터변수라고 선언 (a는 임의의 주소값을 가지고 있어!) 이후 a가 나오면 a공간의 값에~ 라고 읽으면 된다. *a = 10; a주소가 갖고있는 값은 10이다! printf("%d", a); //a주소값 a주소가 출력된다 (임의의 주소값) printf("%d", *a); //a주소가 갖고있는 값 a공간의 값이니 10이 출력된다 그렇다면 int *a = &b 는? 처음에 딱 한 번, 즉 초기화 할 때만 사용할 수 있는 형태. 이후부터는 아래와 같이 *a를 사용할 수 없고 a라고 해주어야 한다. a = &b; 초기화 이후에도 해당 형태로 사용한다면? int *a; *a = &b; c위치의 값을 b의 주소값으로 바꿔버리게 된다.

Programming/C

C언어 기초개념정리(5) 매크로, 구조체

매크로 반복적인 일들을 쉽게 하기 위해 만들어 놓은 것. 함수 한번 호출하면 사라져버린다 매크로 전처리기에서 처리한다 (#이 붙는다) 따라서 모든 프로그램에 공통적으로 들어가게 할 수 있다 1. 변수처럼 선언 #define N 10 앞으로 나오는 모든 N은 10으로 치환할 거다 2. 함수처럼 선언 #define SQR(X) X*X 앞으로 나오는 모든 X라는 인자를 받게 되면 X*X를 수행할 거다 EX #define N 10 #define SQR(X) X*X SQR(N); // = SQR(10); -> 10*10 -> 100을 출력 SQR(N+2); // X = N+2 -> 10+2*12+2 -> 32 ⭐ SQR(N); 모든N은 10이므로 SQR(10); 10*10 100을 출력 SQR(N+2); X = ..

Programming/C

C언어 기초개념정리(4) 함수, Static 변수, 재귀함수

함수 구조 반환타입 함수명(인자들) { 수행할 작업1 수행할 작업2 } 반환타입 : 어떤 형태로 반환할거냐 void 타입 반환타입이 없는, 하지 않아도 되는 것 함수 선언과 사용 int sum(int a, int b) { //정수 a,b를 받는 함수 sum 선언 int c = a + b // c에 저장 return c; // 리턴값 int c } int data = sum(10,20); // 10,20을 sum함수에 넘겨준다. 30을 리턴시켜주어 30을 데이터 값에 넣어준다 printf("%d", data); // 30 EX #include void swap(int a, int b){ int temp; temp = a; a = b; b = temp; // 전역, 정적변수 빼고는 폐기됨 } int main..

Programming/C

C언어 기초개념정리(3) 조건문, 반복문, 배열, 포인터

조건문 1) If if( 조건1 ) { 조건1이 만족할 때의 처리; //나머지는 수행 안 한다 } else if( 조건2 ){ 조건2가 만족할 때의 처리; } else{ 모든 조건이 아닐 때의 처리 } 2) Switch문 (제어문) 여러 개 중에 하나를 선택하는 것 ex. 자판기버튼을 생각하면 된다! 버튼을 누르면 입력값에 맞는 걸 결과로 받게 된다. 주의할 건 브레이크문! int a=0, b=1; switch(a) { case 0 : printf("%d\\n", b++); break; case 1 : printf("%d\\n", ++b); break; default : printf("%d\\n", b); break; } a에 0, b에 1가 들어있는 정수 선언 switch문을 a를 가지고 수행한다 a는..

Programming/C

C언어 기초개념정리(2) 출력 형식, 진법 변환

📌 출력 형식 출력 변환기호 %d ⭐ 부호 있는 10진수 출력 정수 or 문자(아스키코드) %f 고정 소수점으로 출력 실수 %c 문자 출력 문자 하나 %s 문자열 출력 (주소값을 받으면 해당 주소부터 쭉 출력) 문자열 %x 16진수 출력 정수 %o 8진수 출력 정수 출력함수는 인자값이 무조건 있어야 한다. printf("값1 : %d, 값2 : %d", 10, 5); // 값1 : 10, 값2 : 5 printf("값 : %c", 65); // 값 : A printf("값 : %c", 'A'); // 값 : A printf("값 : %s", "안녕하세요."); // 값 : 안녕하세요. // %s는 포인터 값에 쓰인다. printf("값 : %x", 34); // 16진수 printf("값 : %c", )..

Programming/C

C언어 기초개념정리(1) 변수, 연산자, 비트연산자

정보처리기사 공부하면서 정리한 내용입니다. C언어의 컴파일 과정 .c → 전처리기 → .i 전처리 구문을 처리하는 과정 ex. .c 파일로 코드를 짤 때. 맨 위에 #include 를 넣는것. 여기에 printf 등의 많이 쓰는 함수가 들어있다. 이걸 내가 만든 것과 합쳐주는 것이 전처리기의 역할. .i → 컴파일러 .s 고수준 언어를 저수준 언어로 변환하는 것. (번역) 기계어와 가장 가까운 형태의 언어로 바꿔준다. .s → 어셈블러 → .o 완전히 기계어로 바꾸어 준다. .o → 링커 → .exe 여러 개의 오브젝트 파일을 합치거나, 라이브러리를 합치는 역할. 변수 변수 생성 규칙 및 특징 사용 불가 예약어(키워드) 공백 포함 언더바 이외의 특수문자 제한 첫 글자는 영문과 언더바(_)만 대소문자를 구..