C언어 형변환 개념정리
·
C/Concept
🌟 C언어 타입 캐스팅_정수형더보기들어가기 전에C언어를 배우면서 타입 캐스팅(Type Casting)은 반드시 이해해야 하는 핵심 개념. 특히 16진수 데이터를 다룰 때 더욱 중요해지는데, 지금 실제 코드와 메모리 분석을 통해 타입 캐스팅의 원리를 알아보자타입 캐스팅이란?하나의 데이터 타입을 다른 데이터 타입으로 변환하는 과정. 마치 물을 얼음으로 바꾸는 것처럼, 같은 데이터를 다른 형태로 해석하는 것.캐스팅의 두 가지 방법암시적 캐스팅: 컴파일러가 자동으로 수행명시적 캐스팅: 프로그래머가 직접 지정실습 코드 분석#include void main(){ // 16진수 값을 int 타입 변수에 저장 int iNum = 0x1a2b3c4d; printf("iNum 값: %x\n", iNum)..
C언어 포인터 개념정리_2
·
C/Concept
🌟 구조1, & 주소 연산자더보기포인터는 메모리 주소를 저장하는 변수로, C언어에서 가장 중요하면서도 어려운 개념 중 하나. ① (&) 연산자 개념정식 명칭: Address-of 연산자 (주소 추출 연산자)변수가 저장된 메모리의 주소를 반환사용 방법: &변수명 ② 메모리 주소란?컴퓨터의 메모리는 수많은 작은 저장공간들이 일렬로 배열된 구조이다. 각 저장공간마다 고유의 번호가 있는데, 이를 메모리 주소라 부른다. 마치 아파트의 각 호수처럼 각 메모리 공간을 구분하는 번호다. ③ 코드 상세 분석#include void main(){ int iNum = 90; // 정수형 변수 iNum을 선언하고 90으로 초기화 // %d: 정수를 10진수로 출력하는 형식 지정자 // iNum: 변..
C언어 포인터 개념정리_1
·
C/Concept
🌟 구조1, 스택더보기#include int b() { printf("b\n"); return 0;}int c() { printf("c\n"); return 0;}int a() { printf("a\n"); b(); c(); printf("a_end\n"); return 0;}int main() { printf("main\n"); a(); return 0;}// main// a// b// c// a_end ① 프로그램 시작main() 함수가 가장 먼저 실행 ②main() 실행"main" 출력a() 호출 ③ a() 실행"a" 출력b() 호출 → "b" 출력 후 종료c() 호출 → "c" 출력 후 종료"a_end" 출력a() 종료 후 다시 ..
C언어 소스코드 개념정리
·
C/Concept
🌟 C언어 소스코드와 메모리에 저장되는 바이너리의 의미더보기 ① char cNum = 65; char형 변수는 1바이트(8비트) 사용 10진수 65는 2진수로 01000001 따라서 변수 cNum은 주소 0x0061FF17에 01000001로 저장되었음. 이는 아스키코드 ‘A’에 해당0x0061FF17 : 01000001 (65, 'A') ② int iNum = 90;int형 변수는 4바이트(32비트) 사용10진수 90은 2진수로 00000000 00000000 00000000 01011010메모리에는 리틀 엔디언 방식으로 저장되므로, 가장 하위 바이트부터 차례로 저장0x0061FF22 : 01011010 (90의 가장 하위 바이트)0x0061FF23 : 000000000x0061FF24 : 00..