일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- javascript
- 보안뉴스한줄요약
- oracle db
- 다크웹
- GIT
- 자바스크립트 element api
- 오라클
- php
- 카카오프로젝트
- 카카오프로젝트100
- python
- 보안뉴스
- 자바스크립트 객체
- 파이썬
- 보안뉴스요약
- oracle
- 카카오프로젝트 100
- 자바스크립트 API
- ES6
- 보안뉴스 요약
- 랜섬웨어
- numpy
- 자바스크립트 prototype
- 보안뉴스 한줄요약
- 자바스크립트
- Oracle SQL
- 자바스크립트 jQuery
- 자바스크립트 node
- 깃허브
- 자바스크립트 기본 문법
- Today
- Total
목록분류 전체보기 (507)
FU11M00N
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yndkB/btqDp1g3m11/GQ7fh0ra2P7iGUmlk2HxVk/img.png)
C언어 함수포인터란? 포인터 변수는 해당 변수의 메모리주소를 가질수있는 변수입니다. 그럼 함수포인터는 특정 함수에 대한 메모리 주소를 가질수있는것입니다. 함수포인터를 쓰는이유? 프로그램의 코드가 짧아집니다. 함수포인터를 배열에 담아서 사용할수있어 중복되는 코드를 줄일수있습니다. 사진 1-1은 메모리의 구조를 간단히 그림화 시킨것입니다. 함수들은 코드세그먼트 영역에 저장됩니다. #include void function(int a, int b){ printf("%d + %d = %d\n",a,b,a+b); } int main(){ function(10,20); return 0; } 이 코드를 간단히 코드 세그먼트 영억으로 생각하여 봅시다! main함수에서 function함수를 호출하였습니다. 이 의미는 ma..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bIhZxc/btqDohkyTrs/70QR1sEXEFqEuS5NcZfnF1/img.png)
포인터를 쓰는 이유? 프로그래밍에서 변수가 저장과 참조를 하기 위해서는 변수가 저장된 주소를 알아야 가능합니다. 그래서 우리 컴퓨터는 변수가 참조할때 해당하는 그 변수가 저장되어있는 주소를 찾아내고 그 주소가 가리키는 내용을 참조하여 사용됩니다. 그래서 이떄 필요한 게 포인터입니다. 포인터가 변수의 주소를 저장할 수도 있고 사용하는 것도 가능합니다. 포인터를 사용하면 효율적인 표현과 처리가 가능하고 복잡한 자료구조의 알고리즘들 짤때도 함수에 대한 접근이 편해집니다. int a에 5개의 배열 공간이 만들어졌습니다 저 공간 하나 하나는 4byte씩이고 총 20byte입니다. 배열의 이름은 배열의 시작 주소를 나타냅니다. 그럼 여기 하나하나의 인덱스를 &a[0] &a [2] &a [4]라고 표현이 가능하고, ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bMJt2d/btqDmV14b8k/MzMi9SkKt52UoTH8fz7Eq0/img.png)
스택이란?? 스택이란 메모리에서 존재하는 스택 공간에서 지역변수와 매개변수 등을 저장하는 공간입니다. 스택이란 무언가를 차곡차곡 쌓는다는 의미입니다. FILO(First In Last Out, 선입 후출) 이라고도 하고, LIFO(Last In First Out, 후입 선출)입니다. 사진으로 설명하자면 아래와 같습니다. 바나나,복숭아,포도가 들어있고 순서대로 바나나 -> 복숭아 -> 포도 순으로 스택안에 들어갑니다. 그럼 바나나가 맨마지막에, 포도가 맨 위에있는모습이고. 포도->복숭아->바나나 순으로 나오게됩니다! 사진 1-1을 보면 main함수에서 sub함수를 호출하고, 값을 10,50,100씩 넘겨주며 sub함수는 그 값들을 출력하고 있습니다. 위의 값들이 스택에서는 한공간만을 썼다가 소멸되고 한공간..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bJLNRj/btqDk5qylxV/tHAHjpKMqQgrVtKe54fOWk/img.png)
CPU(Central Processing Unit)? 메모리에 있는 내용을 읽고, 쓰는 데이터를 메모리와 각 레지스터로 보냅니다. 프로그램의 명령을 해석하고 실행합니다 하나의 프로세서는 12~14개의 레지스터를 가지고 있고 CPU가 하고있는 연산, 논리 장치는 숫자와 기호에 관한 연산자를 인식합니다. CPU(Central ProcessingUnit) 레지스터의 종류 범용 레지스터, 상태 레지스터, 플래그 레지스터 가 존재합니다. 레지스터란 레지스터는 CPU(Central Processing Unit)가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치이다! CPU내부의 기억 장소로 PC가 정보를 처리하기 위해서는 그 정보들이 셀에 저장되어있어야 하는데, 이러한 셀들을 레지스터라고 불리고 8..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b0msFf/btqDlNbR1Fz/0lEomJOK3Ope0xiRQHpcpK/img.png)
어셈블리어란? 0과 1의 이진수로 프로그램을 하는 기계어는 사람이 봤을 때는 알아보는 게 거의 불가능하고 이를 보완해서 나온 언어가 어셈블리 언어입니다. 기계어가 CPU의 종류에 따라 다르기 때문에 어셈블리어와 호환성이 잘되어있지않은 언어입니다. 어셈블리어의 특징 동일한 종류의 프로세스에서만 실행된다. 프로세서에 대한 사전지식이 필요하다. 메모리나 입출력장치, 레지스터 등의 구성요소를 직접 다룰 수 있다. 컴퓨터에서 실행하는 과정 등을 이해하기 쉽다. 고급언어의 특징 자바와 파이썬 같은 고급언어 들은 CPU의 종류가 달라도 컴파일에 지장이 없습니다. CPU의 기본적인 베이스를 알아둬야 합니다. 어셈블리와 비교했을때 코드가 더 짧고 이해하기 쉽습니다. 컴파일러 VS 어셈블러 - 컴파일러 고급언어 프로그램 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/s3ADc/btqDmmxJO8G/OGebYCZpxYh93OPALYHPdk/img.png)
잠깐 전 포스팅에서 봤었던 자료형들의 크기를 다시 생각해 보고, 아래의 변수들의 크기는 얼마나 나올까요? #include int main(){ //아래의 변수들은 몇바이트일까요? int a; char b; double c; char d[10]; char e[10][5]; return 0; } #include int main(){ int a; // 4byte char b; // 1byte double c;// 8byte char d[10]; // 10 byte char e[10][5]; // 50byte return 0; } int와 char double의 바이트 크기는 다들 알고 계셨겠지만, 배열 d와 배열 e의 크기가 헷갈리는 부분이 있습니다. char d [10]은 char 1byte가 10개 모인 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/V8GNG/btqC85Y5qq6/CbpzI9iheYdif4WXGP0WPK/img.png)
안녕하세요! 이번엔 포인터를 하기 위해 기본적인 개념을 알아보도록 하겠습니다. 구분 크기(byte) 범위 정수형 char 1byte ~128~127 short 2byte ~32786~32767 int 4byte -2.147.483.648 ~ 2.147.483.647 long 4byte -2.147.483.648 ~ 2.147.483.647 long long 8byte ~9.223.372.036.854.775.808~ 9.223.372.036.854.775.807 실수형 float 4byte +- 3.4 x 10^-37 ~ +-3.4x10^38 double 8byte += 1.7 x 10^-307 ~ +- 3.4 x 10^308 long double 8byte이상 double 이상 (long 형은 32비트..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/r43wm/btqCWdWg3JM/qysDcQpxZSuWnOJ6QKeGrK/img.png)
1. 우선 vm웨어를 킵니다! 2. 좌측 상단에 Player -> File -> New Virtul Machine 을클릭합니다 3.Browse를 눌러 우분투 iso 파일을 넣어줍니다 https://ubuntu.com/download/desktop 우분투 홈페이지의 iso파일 다운로드입니다! 4.다운받은 우분투의 경로에 들어가 찾아서 넣어줍니다! 5.넣은게 확인되었으면 Next 를눌러 다음으로 갑니다. 6. "Full name"은 가상 머신에 설치되는 우분투 리눅스의 시스템 이름을 보여줍니다! "User name"은 우분투 리눅스 로그인 아이디로 사용되는것입니다 "Password"와 "Confirm"은 우분투 리눅스 로그인 패스워드로 사용되는것입니다!! 7.그럼 이제 리스트에 우리에게 보일 Virtual ..