변수의 값을 2진수 형태로 확인하는 예제 p.219 (Do it C언어)
함수 안에서만 사용하는 지역 변수와 프로젝트 전체에서 사용하는 전역 변수의 차이를 알아본다.지역 변수 (Local Variable) : 함수 내에서만 사용이 되는 변수로, 함수와 수명(Lifetime)이 같다. 함수 호출이 끝나면 함수와 함께 사라진다.지역 변수로 인해
extern, static 키워드의 사용방법을 알아본다.소스 파일이 길어지게 되면, 함수 별로 하나의 프로젝트에서 쪼개서 .c 파일로 분리하는 경우가 종종 있다. 그러나, 이렇게 함수 별로 파일을 나누게 되면 어떤 파일에서는 전역 함수 선언을 참조하지 못하게 되어 오류
1. 배열 1.1 배열 선언하고 사용하기 똑같은 자료형으로 많은 수의 변수를 선언하고 사용할 때에는 나열식 표현에 한계가 있다. 따라서 C 언어는 데이터를 그룹으로 묶어서 표현하는 ' 배열 ' (Array) 문법을 사용한다. short student[20]; 은
char data1 = 'H'; char data2 = 'e'; ...1바이트 char형 변수를 일일이 선언해서 문자를 저장하면 난감한 상황이 발생할 수 있다. 따라서 간편하게 문자열 또한 이 배열을 사용해 표현할 수 있다.C언어에서 문자를 저장하는 데 가장 적합한 자
지금까지 배우고 사용한 배열은 1차원 배열이다. 하지만 우리가 사용하는 정보가 문자열처럼 1차원 형태로만 되어 있는 것은 아니다. 예를 들어 바둑판에 놓인 돌의 좌표는 어떻게 표시하는 게 효율적인가?바둑판 정보는 가로와 세로가있는 2차원 형태이다.<<바둑판에
내가 풀어낸 코드정답다른 점 : 내 코드가 더 복잡했고, if문이 필요없는데 굳이 써서 만들었다는 점. i = 1로 시작했다는 점이 달랐고, 짝수 형태면 그냥 지표를 2씩 늘리는 (i=i+2)로 하면 간단하게 풀린다는 것을 알게 되었다.7개의 요소를 저장할 수 있는 d
지금까지는 변수를 사용하여 메모리에 데이터를 저장하거나 읽었다. 이렇게 C언어 소스코드에서 사용한 변수들은 컴파일 작업 후 기계어로 변경되면 모두 메모리 주소로 바뀌어서 적용된다.변수 -> (컴파일) -> 메모리 주소결국, 기계어에서는 변수 이름보다 변수가 위치한 메모
C언어에서 직접 주소 지정 방식은 변수 문법이라고 했다. 그렇다면 간접 주소 지정 방식은 C언어에서 어떻게 표현할까? 간접 주소 지정 방식이란 값을 저장할 ' 주소 ' 를 메모리에 저장하는 것이다. 4바이트 정수형으로 addr 변수를 선언하고 addr 변수에 0x000
include void main() { int data = 0x12345678; short* p = (short*)&data; *p = 0x0412; printf("0x%X", data); } Q2. int* 형으로 선언한 포인터 p 변수에 200번지가 저장되어 있다. p++; 명령을 수행하고나면 p에 저장된 주소는 몇 번지일까? > int...
722
722
722
723
723
1. 프로그램과 프로세스 > 코드 세그먼트 (Code Segment) : C 언어를 컴파일러가 기계어로 된 명령문으로 번역해서 실행파일을 만드는데, 이 파일이 실행되어 프로세스가 만들어질 때 기계어 명령들이 복사되는 곳이다. > 스택 세그먼트 (Stack Segm
컴파일러의 설정을 변경하지 않았다면 프로세스 안에서 지역 변수가 저장되는 기본 스택 메모리 크기는 1Mbyte이다.따라서 함수를 호출할 때 지역 변수가 할당되는 메모리 공간은 최대 1Mbyte를 넘을 수 없다. 이렇게 1Mbyte를 넘는 배열을 선언하면 스택에 1Mby