Programming Language) Week8 -데이터 타입, 자료형(Data Types)

Jay Kim·2022년 1월 17일
0

Programming Language

목록 보기
8/11

1)데이터 타입

DataType = 가능한 값과 연산의 유형

  • 기본데이터 유형(primitive type) : 정수형, 실수형, character, Boolean, 열거형

    • 정수형(integer type)
      • signed/unsigned , short/long
      • in JAVA ) short :16bit / integer : 32bit / long : 64bit
      • C언어는 기계마다 사이즈가 다르다.
    • 부동 소수점 실수형
      • float, double (64 bit)
    • 나열/열거형
      • 프로그래머가 정의함
      • 읽기 편하다.
    • 문자형
      • ASCII code : 7bit -> 2의 7승 = 128개의 문자 표현 가능
      • Unicode : 국제화 , 2 byte -> 2의 16승 개의 문자 표현 가능
    • Boolean형
      • true or false
      • in C ) 0 = false / Others = true
    • 자료형 변환
      • 확장 변환 : 데이터 손실 X, 묵시적 변환 , int ->float
      • 축소 변환 : 데이터 값 손실 가능성 O, float ->int
  • 복합데이터 유형(derived type) : Record, string , pointer, array

    2)Array

    • 배열

      • 동일한 데이터 원소의 집합

      • C언어에서의 문자열 ) 문자 배열 , 마지막 원소 =\0 , 배열 = 첫번째 원소의 주소

      • C언어에서의 포인터 배열 ) 주소 여러개 저장

        ex) const *name[] = {"Kim", "Lee"}; -> name[0] = 'K' 첫글자의 주소값 저장

3)String -Record

[String]

  • 배정 (A=B) : strcpy(target, source)

  • 접속 (A= A+B) : strcat(A,B) A=결과

  • 비교 : strcmp(str1, str2) 결과=0일 경우 str1=str2 의미

[Record]

  • 다른 유형의 데이터 원소 집합
  • in C ) struct

4)Pointer

  • 다른 데이터를 가리키는 데이터

  • 동적 데이터 구조 : linked list, tree등에 활용 , 실행 전에 데이터 크기 알 수 없는 경우

  • 동적 할당, 역참조 (ip -> *ip)

  • Cast 연산 : 기억장소를 할당하여 포인터에 대입할 때

    ​ (int *) = 정수를 저장하는 곳을 의미

  • 배열 이름 = 포인터 상수 = 주소값(배열의 시작 주소 저장)

  • 포인터 변수의 문제점 ) 허상 참조 = 의미 없는 변수를 가리키는 포인터

    • ex) 지역변수로 이미 소멸된 변수 가리키는 경우
    • 쓰레기(garbage) : 가리키는 포인터가 없는 데이터, 접근 방법이 없으므로 사용 불가
  • in JAVA ) 포인터가 없음

    • 묵시적 : object, array 활용

    • 변수 2가지로 사용

      • 속성 변수 : 변수의 값을 저장 ,Integer/real ...

      • 참조 변수 : 변수의 주소 값을 저장 , Object, string, array

5)자료형 일치/호환성

  • 이름 동치 ) 데이터 타입의 이름이 같을 때
  • 구조적 동치 ) 데이터 타입의 구성 요소가 같을 때
    • 정의의 어려움 있음(이름 &순서)

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN