[[프로그래밍_NOTE]]/C , C++ 39

배열

배열의 특징 1. 배열의 이름은 배열의 주소이다. (또한 배열변수 앞에 &를 붙여도 배열의 주소가 리턴된다.) 2. 배열의 이름(배열의 주소)은 배열 1번째 요소의 주소와 같다. 3. 배열의 주소가 같다고 해서 배열의 전체 대상체까지 동일하지는 않는다. 4. C에서의 배열은 Boundary Check를 하지 않는다. (다른 메모리 영역을 침범하지 않도록 프로그래머가 주의해야 한다.) 5. 배열을 함수의 파라미터로 넘기면 배열 자체가 넘어가는 것이 아니라 포인터가 넘어간다. (때문에 항상 배열의 갯수도 파라미터로 넘겨주는 것이 정석이다.)

SymbolTable

/* symbol table test source */ //////////////////////////////////// #include #include void main() { int x; int y; int z; x = 10; y = 20; z = x+y; printf("%d + %d = %d\n", x,y,z); getch(); } //////////////////////////////////// # SP : (stack pointer Register) : SP는 push, pop명령에 의하여 위치값이 변경되므로 변수의 위치는 ebp 레지스터를 이용한다. 1. 선언문에 선언된 변수의 정보는 Symbol Table 에 등록된다. 2. Symbol Table은 각종 정보를 저장하고 있다. 3. 변수는 ..

STACK

가상 메모리 /* STACK 공간의 특징 ************************************************************ 1. main() 에서 사용하는 statck Memory 는 일반적으로 0x0012ff7c 이다. 2. 기본적으로 1M이다. (시스템은 Thread당 1M의 Stack Memory를 할당한다. 그러나 실제로 프로그램에서 사용할 수 있는 statck memory는 이것보다는 작다.) 3. CCCC CCCC으로 자동 초기화 된다. (함수에서 사용하는 메모리 +40h 만큼을 CCCC CCCC으로 초기화 한다.) *********************************************************************************/

언어론 중심의 C언어 용어 간략 정리

============================= 언어론 중심의 C언어 용어 정리 ============================= *** 수 - 사물의 물리적인 성질과는 아무런 관련이 없는 특별한 기호의 세계(추상화) 개념이 수로써 정식으로 인정받기 위해서는 사칙연산이 성립되어야 한다. (대상의 복잡성을 제거하여 단순화시키는 도구로 사용) *** 단순화 - 주어진 문제에 대해 직접적인 영향을 미치지 않는 요소들을 제거하고 본질에 대해 더 이상 쪼갤 수 없을 정도의 작은 단위로 분할하여 원래의 문제를 재구성하는 단위전략(unit strategy)에 의해 일반화 시킬수 있다. (프로그램이 단순 - 문제발생률 저하, 신뢰성 향상) *** 변수와 상수 변수 - 기억장소에 대한 이름, (메모리 공간). ..

fread() , fwrite()

◎ fread() 함수는 화일로부터 이진 데이터나 구조체를 읽어들이기 위해 사용한다. 원형 size_t fread(void *ptr, size_t size, size_t nobj, FILE *fp); 인수 ptr - 화일에 읽은 자료를 저장할 버퍼의 시작주소 size - 입력 단위의 크기 nobj - 갯수 fp - 화일포인터 반환값 입력에 성공한 입력 단위의 갯수 ◎ fwrite() 함수는 이진데이터나 구조체를 출력할 수 있도록하는 함수입니다. 원형 size_t fwrite(void *ptr, size_t size, size_t nobj, FILE *fp); 인수 ptr - 출력할 데이터의 시작주소 size - 출력 단위체의 크기 nobj - 갯수 fp - 화일포인터 반환값 출력에 성공한 대상체의 갯수 ..

%#010X 란?

#의 의미 출처: MSDN When used with the o, x, or X format, the # flag prefixes any nonzero output value with 0, 0x, or 0X, respectively. 이게 무슨뜻이냐 #은 o,x,X와 같이 쓰입니다.. 그리고 값을 출력하는데 0,0x,0X스타일로 출력합니다.. 한개식 설명하면 010x는 빈칸은 0으로체우고 10번째칸까지 체우라는것이고 x는 16진수 값을 출력해라 입니다.. 그래서 결과가 imsip = 10 이라면 %010x 출력은 0x0000000a 입니다.. %#010X 출력은 0X0000000A %#x 라고 하면 0xa 가 출력됩니다.. %x 라고 하면 a 가 출력됩니다.. #은 단독으로 실행될수가 없습니다..