출처: 정혜경 판타스틱 자료구조 입문 (in C)
[무료] 정혜경 판타스틱 자료구조 입문 (in C) - 인프런 | 강의 (inflearn.com)
상수 -> 프로그램내에서 다뤄야할 데이터
숫자 상수 : 정수형 상수(10진수, 8진수, 16진수)와 실수형 상수(10진수)가 있다.
1. 정수형 상수
8진수 같은 경우에 앞에 0이 붙고
16진수는 앞에 0x가 붙는다.
읽을때도 십,백,만 등이아니라
맨앞에서 부터 그냥 숫자를 쭉 읽으면 된다.
0123 => 8진수 일이삼
1Byte = 8bit 1bit 는 0과 1로 구성되어있다
즉 1Byte 는 2의 8승 즉 256가지의 데이터 가지수를 나타내고
int 의 경우 4Byte 의 공간을 차지하므로 2의 32승 가지 경우를 나타낼 수 가 있다.
2. 실수형 상수=> 실수형은 오로지 10진수로만!!
0.12325E2
여기서 E는 exponent 10의 지수승
즉 0.12325E2 는 0.12325*10에 2승이다.
소수점으로 엄청 작은숫자거나 큰숫자 일때 지수형 표기를 한다.
문자상수 : 단일인용부호를 이용해서 표현하며 메모리에 한 Byte 크기로 할당.
기능문자나 스페이스 공간도 문자로 취급된다.
char 1byte 짜리 문자형 int 는 4 byte 짜리 문자형
숫자상수 3과 문자 상수 '3'의 차이를보면
3은 3이라는 값이 들어가지만 문자상수 '3'은
3의 아스키코드값인 51이 들어간다.
문자열 상수 : 이중인용부호를 이용해서 표현하며, 문자열의 끝표시인 \0(NULL문자)로 종료하는 데이터.
상수는 고정길이 상수와 가변길이 상수로 나뉜다.
고정 길이 상수
정수 4Byte
실수 8Byte
문자 1Byte
주소상수
2or4or8Byte
가변길이 상수 ->문자열 상수
문자열은 길이가 언제 끝날지 모르기 때문에 끝에 \0을 넣음으로써 끝을 알림.
널문자 역시 공간을 차지함을 알 수 있다. 널의 아스키코드는 널이다.
NullString 을 기억해야한다. 널은 항상 들어간다는 것을 기억해라!!
char 형태로 선언한 C에 "3"이라는 문자열을 넣으려고 하면 뒤에 널값을 넣을 공간이 없기 때문에 오류가 발생한다.
이때 배열로 선언해서 넣을 수 있다.
심볼릭(symbolic) 상수
symbolic 상수는 그렇다면 고정길이상수일까 가변길이 상수일까??
어떤것을 정의하느냐에 따라 다르다.
주소상수 : 변수의 시작주소, 배열의 시작주소, 배열원소의 시작주소, 함수의 시작주소 등.
변수에도 차원이 있다.
아무것도 쓰지않고 선언만 해주면 0차원 변수.
그냥 선언만 하면 0차원
변수 앞에 *을 붙이면 포인터라고 하며 1차원을 갖게됨.
포인터 변수는 1차원 이상! c 언어에서는 논리적으로 무한대 차원까지 가능하다.
일반변수는 일반 상수를 저장하지만
포인터 변수는 주소상수를 저장한다! 즉 어떠한 주소상수의 시작주소를 정한다.
포인터 변수는 a라는 주소의 시작주소를 저장함과 동시에 해당 주소를 가르킨다!!!
포인터 변수는 본인이 integer 를 가지고 있는 것이아니라 integer 값이 들어가있는 기억공간의 주소를 가르키는것.
포인터 변수에 왜 200이 들어가냐면 주소연산자(&)가 붙은 a 라는 주소를 p 에 넣은것이기 때문에 200의 값을 갖게 된다.
'C언어 > C언어 간단 개념 정리' 카테고리의 다른 글
19강. 프로그램의 전처리, 컴파일, 링크의 이해 (0) | 2023.01.12 |
---|---|
17강 18강. 함수의 사용 더 보기 (0) | 2023.01.11 |
13강, 14강 . 상수와 변수의 이해 (0) | 2023.01.11 |
10강,11강,12강 . 호출부, Escape Sequence(확장문자열 - 기능문자) (2) | 2023.01.11 |
7강, 8강, 9강. C프로그램 예제, C언어 괄호 (0) | 2023.01.11 |
댓글