카테고리

asm (27) bootloader_x86_grub (1) C (92) compile (11) config (76) CPP (13) CSS (1) debugging (7) gimp (1) Go (1) html (1) Java (1) JavaScript (1) kernel (19) LibreOffice (3) Linux system progamming (21) MFC (1) opencv (4) OpenGL (1) PHP (1) Python (4) qemu (29) shell (3) socket (7) troubleshooting (2) ubuntu18.04 (2) windows (1)

2018/12/26

C 언어 연산자

조건 연산자: 삼항 연산자.
조건식 ? 참 : 거짓

Short Circuit
비트 연산자, 논리 연산자를 통해 왼쪽 항부터 연산해 논리연산을 통해, 다음 문장을 실행 할지 안할지 판단한다.

&& 논리곱(AND) : 크고 작고 그리곱 1 * 1
|| 논리합(OR)  : 크거나 작거나  1 + 0
~ 논리부정(NOT) : 참을 거짓으로 거짓을 참으로

sizeof 연산자.
CPU 연산이 아니라 컴파일 시간에 정보를 확인한다.
메모리 크기 명시적 확인 방법.
즉, CPU 부하가 없다.

연산과 프로그램밍
연산: 단순 계산기 역할
프로그램밍: 계산된 결과를 논리로 판단하는 기준(연역법, 귀납법, 귀류법).

32bit 운영체제
정보단위 8비트 -> 1Byte : 2^32 약 4G 메모리 영역
메모리 영역의 접근: 고유주소

정수 : int 4Byte
1Byte : 8bit
16 진수: 0x9A는 9:4bit A:4bit

연산 결합 방향(왼쪽 -> 오른쪽)

자료형 : 길이, 해석방법

배열 이름 -> 메모리 주소
char sizeName[32]; ----> char[32] : 주소
char[] == char*
[] == * : 주소와 같다.
char* + int =  address

변수 이름 -> 메모리 : 자료형 기준으로 메모리 자원을 확보한다
                      확보한 메모리의 처음 주소가 대표 주소가 된다.
                      메모리 대표 주소는 고유한 주소를 가진다.
                      고유한 주소는 자료형의 최소 단위(8bit, 1byte)정보를 가진다.
  자료형의 단위는 자료형마다 다르다.
  주소 표기법은 16진수로 표현한다.
  16진수 표현으로 왼쪽에서 오른쪽으로 증가한다
  증가하는 방식은 자료형의 크기로 증가된다.
       
&변수이름 단항: 주소연산자 -> 메모리에서 주소 정보 확보.
*메모리 주소 단항: 간접지정 연산자 -> 주소 기반으로 변수 생성.