제어문, 조건문

·2023년 3월 4일
0

C

목록 보기
2/13

📌출력형태


  • %d (decimal 10진법)
  • %o (octal 8진법)
  • %x (Hexadecimal 16진수)
  • %p (16진수 주소)%
  • %c (char 하나의 문자)
  • %s (String 문자열)

📌실수형 생각할점


float double 구별위해서 f 붙여준다

%f는 언제나 소수점을 뒤에 붙인다.
안붙이고 f를 사용하면 0이 뜸


📌입력


printf는 double float 둘다 f로 출력이 가능
하지만 scanf는 각 자료형마다 포맷이 정해져 있다

scanf("%d, &int형변수)
scanf("%lf, &double형변수)
scanf("%f, &float형변수)

&쓰는 이유 값을 저장하기 위해서는 주소가 필요하다(주소/데이터 생각)


📌제어문


관계연산자 결과값은 0(거짓) or 1(참)

for문에서 전위 후위 증감식

for(int i =1; i<5;i++){}
for(int i =1; i<5;++i){}

for(초기식, 조건식, 증감식)에서 증감식이 전위, 후위 증감 연산자의 차이는 없다
각식을 전부 진행해야 넘어가기 때문에 차이가 없다

cotinue

  • 반복문 아래있는 코드를 패스하고 다음 반복(스킵)

break

  • 반복문을 벗어난다

📌조건문


switch case

switch(/*변수*/)
{
	case /*값 */:
}

변수부분

  • 들어가는 변수의 타입은 정수 계열(char, short, int, long)
    float이나 double이 들어가면 오류가 발생

  • 변수가 아닌 상수가 들어감

변수부분에 char 들어가는 이유
char도 아스키코드식으로 정수로 표현이 된다.


📌형변환


(바꾸려는 형) 변수이름

형을 바꾸는 것은 일시적으로 바뀐다


📌배열


(배열의 변수형) (배열의이름) [원소개수]

원소개수는 생략하면 컴파일러가 알아서 만들어줌

int arr[3] = {1, 2, 3};
arr = {4, 5, 6};

위는 가능 하지만 아래는 불가능하다(C에서)

배열의 크기를 변수로 받아올수가 없다(나중에 동적할당으로 가능)
컴파일러가 배열을 처리할 때 메모리 상의 공간을 잡는데 이는 상수만 가능하기 때문이다


📌상수


const (상수의형) (상수이름) = (상수의값);

상수는 처음 정의시 그 값이 주어지고 변하지 않는다.


문제(반복문관련)


Main.c

참고자료


씹어먹는 C코드

profile
개인공부저장용(하루의 기록)

0개의 댓글