1. 메모리 구조 메모리는 크게 4개의 영역으로 나뉜다. 코드 영역, 스택 영역, 힙영역, 데이터 영역 이다. 1) 코드 영역 : 실행 명령어 저장 - 소스코드가 저장되는 영역으로, 실행할 명령어들이 순서대로 쌓인다. - cpu가 이 영역에서 명령어들을 하나씩 가져다가 처리한다. (큐 구조) 2) 스택 영역 : 개발자가 제일 많이 사용하는 메모리는 스택 메모리 영역이다. - 스택이란 모든 원소들의 삽입 삭제를 한쪽 방향에서만 수행하도록 하는 선형 자료 구조이다. - 이를 후입선출방식 (Last In First Out)이라 한다. - 스택메모리는 지역변수와 매개변수같은 값들이 저장되는 공간이다. void Test(int a) { char b = 'A'; int c = 1; double d = 3.14; }..
열거형이란? - 열거형은 enumeration의 약자로 enum(이넘)이라고 읽는다. - 데이터들을 열거한 집합이다. - 컴파일러는 열거형 멤버들을 정수형 상수로 취급한다. 열거형의 사용법- 키워드는 enum을 사용하여 정의한다. #include enum Week { sun = 0, mon, tue, wed, thu, fri, sat }; int main(void) { int day; printf("요일을 입력하세요(1.일, 2.월, 3.화, 4.수, 5.목, 6.금, 7.토) : "); scanf("%d", &day); switch (day) { case sun: printf("sunday"); case mon: printf("monday"); case tue: printf("tueday"); case..
1. 구조체란?- 하나 이상의 서로 다른 종류의 변수들을 묶어서 새로운 자료형을 정의하는 것이다. 구조체를 사용하는 이유- 연관된 변수들을 하나로 묶어서 관리함으로써 데이터 관리에 유용하다.- 데이터의 양이 많아지면 구조체가 유리하다.- 예를 들어 학생정보 관리 변수를 생성할때 이름, 나이, 성별 등의 정보들은 모두 변수로 선언하여 각각의 변수를 별도로 관리하면 연관성을 알 수가 없다. 구조체 정의 방법#include struct student{ char name[10]; int age; int height;}; // 구조체 정의int main(void){ struct student st1; // 구조체 선언 struct student st2;} - struct 키워드는 구조체라는 자료형을 의미- ..
1. 배열의 선언과 사용- 동일한 자료형을 저장할 저장공간이 많이 필요한 경우 일일이 변수를 선언하는것을 비효율적이다. 이때 배열을 사용하여 대체할수 있다.배열을 사용하기 위해서는 선언을 먼저 해야한다. 배열의 선언은 간단하다. 요소의 자료형에 이름을 붙이고 필요한 요소 수를 표시한다. int ary[5]; int = 요소 형태ary = 배열명[5] = 요소 개수 #include int main(void){int ary[5]; ary[0] = 10;ary[1] = 20;ary[2] = ary[0] + ary[1];scanf("%d", &ary[3]); printf("%d\n", ary[2]);printf("%d\n", ary[3]);printf("%d\n", ary[4]); return 0;} INT형 ..
우선순위 종류 연산자 연산 방향 1 1차 연산자 ( ) [ ] . -> -> 2 단항 연산자 - + + - - ~ ! * & sizeof (type) 5 비트 이동 연산자 > -> 6 관계 연산자 = -> 7 동등 연산자 == != -> 8, 9, 10 비트 논리 연산자 & ^ | -> 11, 12 논리 연산자 && || -> 13 조건 연산자 ? : -> 14 대입 연산자 = += -= *= /= %= &= ^= |= = (연산자의 종류) 1. 연산자와 피연산자 - 프로그램은 CPU가 처리하는 명령들의 묶음이다. 일반적으로 연산자는 컴파일되면 명령어로 바뀌므로 연산자를 배우는 것은 결국 명령을 익히는것이다. 이든 연산 명령에는 연산의 대상이 되는 데이터가 필요한데 이를 피연산자라고 한다. ++a ..
포인터의 크기는 애플리케이션의 호환성과 다른 환경으로의 이식 가능성을 고민할때 문제가 된다. 최근에 널리 사용되는 대부분의 운영체제 환경에서 포인터의 크기는 일반적으로 포인터 타입에 상관없다. 예를 들면 char에대한 포인터는 구조체에 대한 포이터와 크기가 같다. C표준에서 모든 데이터 타입에 대한 포인터의 크기가 같아야 한다고 명시하고 있지는 않지만, 일반적으로 포인터의 크기는 동일하다. 하지만 함수에 대한 포인터와 데이터에 대한 포인터의 크기는 다를 수도 있다. 포인터의 크기는 사용하는 장비와 컴파일러에 따라 다르다. 예를 들어 윈도우버전에서 포인터의 크기는 32 또는 64bit이며 오래된 dos 그리고 왼도우 3.1 os에서 포인터는 16또는 32비트다. 1. 메모리 모델- 64bit 컴퓨터 도입으..
포인터는 C언어 전반에 많은 영향을 미치며 언어 자체에 많은 유연함을 제공한다. 포인터는 동적 메모리 할당의 매우 중요한 부부이기도 하며, 배열의 표기법과 밀접한 관련이 있다. 오랫동안 포인터는 C언어 학습에 걸림돌이 되었는데 포인터의 기본적이 개념은 매우 간단하다. 포인터는 메모리 위치의 주소를 저장하는 변수이다. 하지만 포인터 연산자를 사용하고, 암호와도 같은 난해한 표기법을 식별하려고 할 때부터 이 개념이 급격하게 복잡해진다. 포인터를 이해하는 열쇠는 C프로그램에서 메모리가 어떻게 관리되는지 이해하는데 있다. 포인터는 메모리의 주소를 담고 있기 때문에 메모리가 구성되고 관리되는 방법을 이해하지 못한다면 포인터의 동작 방식을 이해하기 쉽지 않다. 그렇기에 메모리의 구성 방법을 확실하게 이해하고 나면 ..
- Total
- Today
- Yesterday
- 빈파일
- 다클 코드
- 정보처리기사 2018 2회
- 폴더선택다이얼로그
- JNI
- 데스큐어
- 정보처리기사 실기 후기
- 위대한 쇼맨 ost
- 합격 후기
- 다클 빈
- JNI SIGNITURE
- Linux
- 대항해시대 로그인
- 대항해시대 다클
- vite.js
- 대항해시대
- 대항해시대 런처
- 위대한 쇼맨 후기
- 대항해시대 다음 런처
- lxd
- HTTPie
- 대항해시대 넷마블 런처
- 위대한 쇼맨
- JNI INVOKE
- OSI 7Layer
- 정처기 실기
- 구글 클라우드 플랫폼
- EACCES: permission denied
- React.js
- JNI 시그니처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |