일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- phaser
- 도커
- express
- jQuery
- 웹소켓
- HTML
- websocket
- AWS
- 블록체인
- Ajax
- PL/SQL
- JavaScript
- SQL
- 웹게임
- Cookie
- EC2
- CSS
- Servlet
- 암호화
- 비트코인
- 배포
- Spring
- JSP
- 알고리즘
- tiles.xml
- RDS
- model1
- docker
- node.js
- autowired
- Today
- Total
목록Computer language/C (9)
記錄
출처 : https://www.youtube.com/watch?v=0T_QerEEjNA 구조체 접근하여 값 변경하기(구조체명으로 접근, 구조체 포인터 변수로 접근) 실습 #include #include struct Books { char Name[64]; char Author[32]; int Price; }; int main(void){ // 선언 후 출력 struct Books book_1 = {"Harry Potter", "JK", 20000}; printf("Title : %s Author : %s Price : %d\n", book_1.Name, book_1.Author, book_1.Price); // 값 접근하여 변경 - 구조체 명으로 직접 접근하여 값 변경 book_1.Price = 5000..
출처 : https://www.youtube.com/watch?v=_Cn2TXFf2Cg typedef로 간단히 정의를 해뒀어도 struct로 선언이 가능하다 보기 좋으라고 두 줄로 된 것이지 실제로 메모리상에는 모두 일렬로 공간이 할당된다 구조체 선언 방식 두 가지 실습 #include #include struct Books1 { char Name[64]; char Author[32]; int Price; }; typedef struct Books2 { char Name[64]; char Author[32]; int Price; } Books2; int main(void){ struct Books1 book_1 = {"Harry Potter", "JK", 20000}; Books2 book_2 = {"T..
출처 : https://www.youtube.com/channel/UCn1NX3h4lYS8wgsytxNyGiA/videos 배열은 같은 데이터 타입을 보관하기 위한 개념이라면구조체는 다른 데이터 타입들을 묶어 관리하기 위한 개념이다
출처: https://www.youtube.com/watch?v=QZWFH98hzpc 변수 이름이 같다고 해도 다른 주소값을 쓰기 때문에 변수명 만으로는다른 함수의 값을 다른 함수가 변경할 수는 없다는 것을 보여준다 변수 선언시 컴퓨터는 심볼테이블을 가지고 있어서변수에 접근할 때 테이블을 참조하여 주소값으로 접근 - 포인터 변수에도 자료형이 필요한 이유는 해당 포인터 주소로 가서 '이 주소를 따라갔을 때 몇 바이트를 읽어들일지'를 컴퓨터가 알 수 있도록 하기 위해서다. ex) int_ptr은 int형 포인터 변수이므로 컴퓨터는 int_ptr이 가리키는 주소값으로 '4바이트를 읽어야겠다'고 작정(?)하고 가서 4바이트를 읽어온다. 마찬가지로 char_ptr은 1바이트, short_ptr은 2바이트를 읽는다..
이 포스팅은 제가 만든 것이 아니고 유투브의 강의를 듣고 복습을 위해 정리한 것입니다. 유투브 강의의 출처는 맨 아래에 밝혀둡니다. 이전까지 한 것 복습(전역변수와 지역변수 섞인 예제) 여기서 쓰레기값을 버리는 행위를 '패딩'이라고 한다. 패딩을 하게 되면 메모리 효율은 떨어지지만 연산 속도가 빨라진다. 출처 : https://www.youtube.com/watch?v=ivFdOVxP80o
이 포스팅은 제가 만든 것이 아니고 유투브의 강의를 듣고 복습을 위해 정리한 것입니다. 유투브 강의의 출처는 맨 아래에 밝혀둡니다. int sum = 0으로 전역변수 sum이 초기화와 선언이 동시에 되면서 Stack Segment가 아닌 Data Segment 에 sum으로 공간 할당이 이뤄지고 값이 0으로 들어간 것을 유념한다!! 여기서 나는 전역변수와 지역변수가 메모리에 저장되는 공간과 시기가 다르다는 것을 확인할 수 있다. 지역변수와 함수 parameter는 런타임시에 메모리에 push되고 함수의 종료와 함께 pop되어버리는 것에 반해 Data Segment에 push되는 전역변수는 컴파일 시에 push되어 계속 메모리에 상주하면서 값이 갱신되는 것이다. 코딩할 때에 이미 이러한 내부 작용을 이해한..
cf. 지금부터 연속적으로 올리는 메모리 구조에 관한 포스팅은 제가 만든 수업자료가 아님을 밝힙니다. 유투브에 올라온 강의를 듣고 수업 복습용으로 남기는 포스팅이며 유투브 강의 출처는 맨 밑에 밝혀둡니다. Code Segment - C언어 등 인간이 이해할 수 있는 프로그램 언어가 컴퓨터가 이해할 수 있는 코드로 번역되어 저장되는 곳Data Segment - 전역변수, static변수, 문자열이 들어가는 공간 프로그램이 실행되기 전인 컴파일시에 적재된다Heap - 동적 할당 영역. 프로그램이 실행된 중간에 필요에 의해 메모리에 적재했다가 없앴다가 할 필요성이 있는데 이 때에 사용되는 공간이다. 추후 이것은 강의를 보고 따로 포스팅Stack Segment - 지역 변수, 함수 parameter가 적재되는 ..