기본(원시) 타입 :  Number, String, Boolean, undefined, null

참조 타입 : 기본타입을 제외한 모든 타입, 객체(배열, 함수, 정규표현식, Date, RegExp 등)


변수 선언 키워드 var


기본데이터 타입으로 만든 변수는 typeof연산자를 이용해 출력하면

데이터타입을 나타내는 문자열이 출력

//숫자 
var int = 10;
var float = 1.1;
//모든 숫자를 실수로 처리
//64비트 부동소수점 형태로 저장
console.log(typeof int, typeof float); //-> number, number

//문자
var singlech = 'single';
var doublech = "double";
//한번 정의된 문자는 변하지 않음
//정해진 문자열에 배열의 인덱스로 새로운 문자를 대입하여도 변하지 않음
//한번 생성된 문자열은 읽기만 가능하고 수정은 불가능
console.log(typeof singlech, typeof doublech); //-> string, string

//Bool
var booltype = true;
//''나 ""로 작성하지 않음에 주의
console.log(typeof booltype);//-> boolean 

//undefined 
var emptyspace;
//아무런 값이 할당되지 않을 때 사용
console.log(typeof emptyspace);//-> undefined의 하나의 데이터 타입

//null
var nullobject = null;
//명시적으로 값이 비어있음을 알려줄 때 사용
//null은 typeof로 확인이 안되며 아래와 같이 확인
console.log(nullobject === null);//-> true

console.log(typeof nullobject);//-> object


'프로그래밍 > JavaScript' 카테고리의 다른 글

객체 프로퍼티  (0) 2019.03.12
참조 타입 객체 생성  (0) 2019.03.12
 

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	//상태표시줄 없애려면 아래코드 주석처리
	//if (!m_wndStatusBar.Create(this))
	//{
	//	TRACE0("상태 표시줄을 만들지 못했습니다.\n");
	//	return -1;      // 만들지 못했습니다.
	//	ModifyStyle(WS_CAPTION, NULL);
	//}
	//m_wndStatusBar.SetIndicators(indicators, sizeof(indicators) / sizeof(UINT));
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	//타이틀 수정
	cs.style &= ~FWS_ADDTOTITLE;
	cs.lpszName = L"미세먼지";

	//창 크기 조정
	cs.cx = 1200;
	cs.cy = 650;

	//메뉴 창 없애기
	cs.hMenu = NULL;
}

BOOL CView::PreCreateWindow(CREATESTRUCT& cs)
{
	//테두리 없애기
	cs.style &= ~WS_BORDER;
}

void CView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();

	//창 크기를 원하는 사이즈만큼 늘렸는데도 
	//일정크기 이상 커지지 않으면 이 함수를 주석처리
	//ResizeParentToFit();
}

sizeof 연산자


sizeof A  : A 메모리의 크기를 

바이트 단위로 알려준다.


cpu 하는 연산이 아닌 

컴파일러가 하는 연산.


컴파일러가 기계어로 

번역하는 과정에서 발생하는 연산.


자료형의 크기를 컴파일러에게 물어보는 .


  

 

int Data = 10;

printf("%d\n", sizeof(Data));

 

변수 Data의 자료형은 int이므로 

4를 출력

 


printf("%d\n"sizeof(char*));

 

32비트 어플리케이션 VS 사용하고 있다면 

char 대한 포인터이므로 

4 출력



char Name[16] = { "Start" };

printf("%d\n", sizeof(Name));

 

배열의 이름인 

Name 자료형은 char이고

결국 char[16] 같으므로 

16 출력

 

 

char Name[16] = { "Start" };

printf("%d\n", sizeof(Name + 1));

 

"char[] == char*"

"[] = *" 로 변환 될 수 있다.


"char*" 본질은 주소이므로 

여기에 정수(int)'1'을 더하면 연산결과는 

다시 주소를 담을 있는 포인터가 된다.

따라서 4 출력


(포인터에 대해 아직 잘 몰라서 일단 들은대로 적음)

(나중에 제대로 이해하면 첫번째 문단의 이유를 다시 제대로 적겠습니다)


 

int Data = 10;

printf("%d\n", sizeof(++Data));

printf("%d\n", Data);

 

sizeof연산은 컴파일러가 하는 연산.

단항증감에 대한 연산을 수행하지 않고

자료형이 무엇인가를 알려주는 것.


따라서 Data변수의 자료형은 int이므로

4 출력하게 된다.


다음행에 변수 Data 정보를 출력해보면

원래 Data 값인 10 출력된다.






** 잘못알고 있는 것이 있으면 댓글로 알려주시면 감사하겠습니다! **

'프로그래밍 > C언어' 카테고리의 다른 글

쇼트서킷(Short-circuit)  (0) 2018.07.02
단항 증감 연산자  (0) 2018.06.28
단순 대입 연산자  (0) 2018.06.28
비트연산자  (0) 2018.06.28
자료형, 보수와 음수표현  (0) 2018.06.14

+ Recent posts