알쏭달쏭 공부한거 쓰기
자료구조를 위한 c언어 복습-3장 기본자료형과 변수 본문
3장 기본 자료형과 변수
=================
#c언어의 기본 자료형과 변수
문자형-chadr 1byte
정수형-short int long(int)-32bit 체제에서는 4 64bit 체제에서 8을 가진다.
실수형-float double long double
기타-void
문자형
-ASCII문자, char형
-1byte 한 문자 저장
정수형
-컴에서 처리하는 가장 기본적인 수
-2byte, 4byte, ..등
-short,int(4byte 할당),long
실수형
-4float( 32bit) < 8double(64bit)
1bit에 들어가는 경우 2가지(0또는1)
2bit-4가지
2byte=16bit=2의 16승
-2의 15승~0~2의 15승-1
자료형
-void형-값x,함수 정의 및 선언
=========================
#변수 선언 및 값의 치환
-반드시 변수 선언 후 변수를 사용해야한다 선언을 해야 변수에 메모리가 할당된다.
-변수값을 치환> 변수=값/변수/수식
===========================
#printf()함수와 기능
printf()는 문자열과 다양한 형식의 데이터를 출력할 수 있다
%를 이용하여 형식지정자를 사용하여 나타낼 수 있다
%d10진수 %f소수점형식의 실수%c1문자%s문자열%lf-double형식의 실수
sizeof(자료형/변수명) sizeof 변수명
*상수
-기호상수:const 추가, 변경 불가능
변수를 상수화 선언(선언과 동시에 할당)
const 자료형 변수=초기화 값
#include <stdio.h>
int main()
{
const float p=3.14159;
int r;
r=7;
printf("반지름이 %d인 면적 %.1lf\n",r,r*r*p);
printf("반지름이 %d인 둘레 %.1lf\n",r,2*r*p);
printf("\n\n");
r=10;
printf("반지름이 %d인 면적 %.1lf\n",r,r*r*p);
printf("반지름이 %d인 둘레 %.1lf\n",r,2*r*p);
return 0;
}
-리터럴상수
-매크로상수 define
상수를 사용하는 방법 중 매크로 상수를 사용할 수 있다.
#으로 시작> 컴파일 전 전처리기가 해석
#define 문으로 정의
#define 매크로 상수명 값
>; 안써도 된다.
ex) #define Odd 1
매크로 상수들은 매크로 값으로 모두 대치된다.
#접미사규칙
3.14>double
3.14F>float
3.14L>long double
100>int
100L>long int
100U>unsigned int
2.변수 초기화와 주소연산자
2.1 변수 메모리 할당 공간과 쓰레기
-변수선언-스택(재활용공간)에 할당
-메모리 재활용>이전 사용값이 남아있다
-변수초기화(누적변수를 위해서)
2.2주소연산자(&)
변수 선언> 메모리 할당>메모리 주소에 의해 구분됨
메모리에 공간마다 메모리 주소를 가진다.
&변수명> 변수에 할당된 메모리의 시작주소 알려줌
printf(“%p ,%d”,&age,age);
%p는 시작주소를 출력하는 형식지정자
2.3데이터 입력
-scanf()함수
키보드로부터 데이터 입력 가능
scanf(“형식 지정자”, &변수);
ex) scanf(“%d”, &age);
%d> 10진수를 입력받는다
&연산자는 입력받은 데이터를 변수가 할당된 메모리 시작주소에 저장하기 위해서 필요하다.
입력된 나이> 변수의 시작주소에 저장된다.
# 형식지정자와 맞지 않는 자료형을 입력시
입력을 받지 않거나
1)24 %c는 1문자만 받기 때문에 다른 값이 나이로 내려간다
2) m/w외의 다른 값에 대해서는 지정을 하지 않았으므로 2를 성별 변수값으로 받는다
3)나이를 %d 십진수가 아닌 값으로 한 경우에 처리하지 못하고 프로그램이 끝난다
scanf()함수는 안전하지 않으므로
scanf_s()를 사용하기를 권장
혹은
# define _CRT_SECURE_NO_WARNINGS이용
#pragma warning (disavle:4996)
SDL 검사 끄기
>메모리 구조와 배열의 내용을 알아야 한다
chapter 8에서 다루어짐
3.형 수정자
형 수정자를 사용하여 적합한 형태의 자료형으로 이용가능
-short/long 수정자
short int(2) <int(4)<long int(4/8)
(sizeof(변수명) 이용해서 크기 알아내기)
-signed 수정자
부호가 있는 정수> 양수와 음수의 표현이 가능한다
signed char ch1;
최상위1 bit =MSB> 양수0, 음수1
-unsigned 수정자
chat/int> 부호가 필요없는 양의 정수
>부호비트가 필요없어서 전bit정보 저장 가능
>overflow가 발생한다: 최대값+1=>최소값
-float, double형
실수표현=부호+지수부(10의 거듭제곱)+가수부(값)
double의 유효자릿수15자리>정밀도 ^
float의 유효자릿수 6자리
long double 이용시 더 큰 정밀도
부동소수점 형식지정자 %f
지수형식 형식지정자 %e
3.4음수 표현
-2의 보수를 이용
부호 비트를 제외한 모든 비트르 반대로 바꾸고 +1
4. 형 변환
-묵시적 형변화
피연산자의 자료형이 다르면 큰 자료형에 따른다. 나머지 자료형은 자동으로 형변환함
-명시적 형변화(cast연산자)
(자료형)변수-이순간만 쓰이고 계산 후 원래 자료형이 된다.
int num=10;
double d_num=3.0;
printf(“%d\n”,num/d_num)
printf(“%d\n”,num/(int)d_num)
위의 것은 double의 자료형을 따라가면서 3.3333
아래것은 int 자료형이라서 정수인 3만 채택
다른 형을 대입받을때
1)정수>실수: 정수값은 가수부 소수부는 .0
2)실수가 정수> 가수부의 값만 전달
3)오른쪽의 형이 왼쪽 형으로 변환
%hd=short int
%ld=long int
4.3 typedef
사용자 정의 자료형
typedef old-name new-name;
typedef unsigned short int s_int;
s_int num; 새변수 선언
4.4 enum 상수
enum 열거형 상수 정의
-하나 이상의 정수형 상수를 원소 갖는 집합
enum 나열형태그명 {나열형 리스트} 나열형 변수;
enum Color {red,green,blue, white, black};
enum Color my color;
혹은
enum Color {red,green,blue, white, black} my_color;
-시작값 변경 가능
enum Color {red,green,blue, white, black} my_color;
과제 연습문제 3-7,3-8,3-9
'2-2학기 > c programming' 카테고리의 다른 글
자료구조를 위한 c언어 복습 -2장 c언어 시작하기 (0) | 2023.09.08 |
---|