[프로그래밍 언어] 3. Data Type
Y
Yerim
enum colors (red, blue, green, yellow, black); // 열거형 타입 정의
colors myColor = blue, yourColored; // 열거형 변수 정의배열 | 구조체 |
동질적인 데이터 원소들의 집합체 (데이터 원소들은 동일한 타입) | 서로 다른 데이터 원소들의 집합체 (데이터 원소들은 동일 / 다른 타입) |
배열의 이름은 포인터 → 배열을 넘기면 배열/pointer로 받음 | 구조체 이름은 구조체 → 구조체를 넘기면 구조체로 받음 |
int a[10];
struct A{
int a;
char c;
}[10, "abc", 7.5]
a = 10
a = 'abc'
a = 7.5
int a[10];
f(){
static int a[10]; // C언어에서 static으로 선언되는 배열은 정적 배열
}f(){
int a[10]; // C언어에서 함수에 선언된 배열
}f(){
mt[] array={1, 2, 3, 4} // heap에 저장
}List<String> list = new ArrayList<String>();
list.add("홍길동");
STring name = list.get(0);주소(list[k]) = 주소(list[하한]) + ((k - 하한) * 원소_크기)주소(a[i, j]) = 주소(a[row_lb, col_lb]) + (((i - row_lb) * n) + (j - col_lb)) * 원소크기myTyple = (3, 5.8, 'apple') # 레코드와 유사, 각 원소를 가리키는 이름이 없음
myTyple[1] # 색인이 0부터 시작, 두 번째 원소를 참조 -> 5.8myList = [3, 5.8, "grape"] # 이름에 리스트 값을 할당하여 생성
x = myList[1] # x에 5.8이 배정
del myList[1] # 원소 삭제 가능
# 리스트 포괄 구문
[x * x for x n range(12) if x % 3 == 0] # [0, 9, 36, 81]union flexType{
int intEl;
float floatEl;
};
union flexType el1;
float x;
...
el1.intEl = 27;
x = el1.floatEl;int *arrayPtr1;
int *arrayPtr2 = (int*) malloc(sizeof(int)*100);
arrayPtr1 = arrayPtr2;
free(arrayPtr2);
// 이제 arrayPtr1은 허상 포인터 -> 포인터가 가리키고 있는 힘 기억공간이 반환int *p1;
int p2;
p1 = (int *)malloc(sizeof(int)*100);
p1 = &p2;
// 이제 malloc()으로 할당받은 힘-동적 변수는 쓰레기가 됨j = *ptr // 역참조 연산
(*p).age // '*'로 역참조 후, '.'으로 필드 참조
p->age // '->'로 역참조와 필드참조를 한꺼번에 처리
malloc() // 힙 메모리 관리르 위한 명시적인 할당
void * // 포괄 포인터 -> 타입의 포인터, 역참조 불허String str1; // null(nil)로 설정
...
str1 = "This is a Java literal string";