본문으로 바로가기

post by WHITEHATS

웹기반 정보보안 엔지니어 과정 160311 27번째 강의


5.변수 선언

•변수 선언
     -메모리의 공간을 할당 받기 위한 요청
     -함수의 선언부에서 지정 함

     

     숫자는 0으로 초기화
     문자는 \0, 널문자로 초기화



5.변수 선언

•변수명 작성법
     -영어 대/소문자, 숫자, _(언더바)만 사용함 → 공백, 특수문자 사용 금지
     -이름의 시작은 숫자를 사용할 수 없음
     -Keyword(예약어)를 사용할 수 없음

•예약어
     -C언어 문법에 의해 정의되어 있는 이름
     





5.변수 선언

•변수 선언 방법
     -선언부에서 변수 선언 후 처리부에서 데이터 입력
     -선언부에서 변수 선언과 동시에 데이터 입력 → 변수 초기화
     -동일한 자료형을 변수인 경우 한꺼번에 선언 함
     
     




5.변수 예제1

     

    printf에 argument의
     싱글쿼터는 단일문자를 의미
     더블쿼터는 문자열을 의미
     아무것도 안달린 단어는 변수명을 의미



5.배열

•배열 (array)
     -동일한 자료형의 변수를 연속적으로 할당 받은 저장 공간 → 자료형이 같은 변수의 집합
     -데이터처리 및 메모리의 공간 사용을 효율적으로 하기 위해 사용 됨
          --변수로 할당 받은 메모리 공간은 연속성이 없음
     -배열의 이름(주소형 데이터) = 메모리의 배열 시작 주소

•배열의 종류
     -1차원 배열
          --동일한 자료형 변수의 연속된 메모리 공간을 할당 받은 저장 공간
          --문자열 저장에 많이 사용 됨
     -다차원 배열-배열을 입체적으로 표현 함 → 하위 차원 배열의 집합
     -2차원 배열 → 1차원 배열을 연속적으로 할당 받은 저장 공간
     -사용 예
          --게임 프로그램에서 맵 구성
          --그래픽에서 좌표 구현
          --Database로 표현될 수 있는 프로그램
          --자료구조 구현



5.1차원 배열 선언

•배열 생성

     


     -자료형
          --연속된 공간의 크기 및 저장 데이터형
     -배열 이름
          --배열로 할당된 메모리 공간의 시작 주소
     -첨자
          --연속해서 할당할 메모리의 크기 → 변수 개수
          --배열 안에 포함될 변수의 식별자 →  0부터 시작

     




5.1차원 배열 초기화

•배열을 선언하면서 데이터 저장

     

     두번째꺼는 에러뜸.. 만들어진 개수랑 초기화된 개수랑 같아야 한다!! 
     네번째꺼는 뒤에 있는 값이 하나밖에 없지만 전체를 0으로 초기화 시켜준다!
     (0으로 지정했을 때만 가능!!!!)
     다섯번째는 5개의 공간을 만들어 준다. 더블 쿼테이션이 공간 하나를 널문자로 먹는다!!!!!



5.1차원 배열 데이터 입력

•배열을 선언한 후 데이터 입력

     

     num은 주소!!
     num[0]은 변수의 이름!!
     변수 이름앞에 & 붙여주면 한번만 따라가서 주소값을 내놓으라는 말임!! (ex &num[0])

     3번째꺼는 G o 를 따로따로 단일문자로 넣어버렸는데 뒤에 널문자가 없어서 에러가 뜬다.
     그래서 ch[2] = '0'; 을 추가해서 에러를 방지할 수 있다.



5.1차원 배열 예제1

     

     
     

     arr = &arr[0] 주소값이 같다!!!!!!!
     



5.1차원 배열 예제2

     

     


     1.오류
     2.오류  (만약에 argument를 ch[0]으로 바꾸고 실행하면 G만 출력!)
     3.정상출력 (argument에 메모리 시작되는 주소를 입력해야한다!)
     


6.입력 제어



6.표준 입력

•scanf( ) 함수
     -표준 입력 함수
     -표준 입력 장치(키보드)에서 발생하는 데이터를 프로그램으로 가져오는(입력)하는 함수
     -더블 쿼테이션 (“ “)사이의 지정된 형식으로 데이터를 저장하는 함수

•헤더 파일
     - stdio.h

•함수의 기본 형태
     


     -입력 버퍼에 접근하여 더블 쿼테이션(“ “)의 형식대로 데이터를 변수에 저장하는 기능을 수행 함
          --입력 데이터의 형식은 반드시 제어문자로 지정해야 함
     --입력 버퍼에 접근할 데이터가 없으면 표준 입력장치(키보드)로 데이터 입력을 요구 함
     -argument에 입력 데이터를 저장할 메모리의 주소를 지정해야 함
          --변수의 주소 → &변수명
          --배열의 주소 → 배열명(배열의 주소는 메모리의 시작 주소)



6.scnaf() 예제 - 숫자 입력

     




6.scanf() 예제 - 문자 입력

     




6.scanf()의 입력버퍼 처리

•입력 버퍼
     -표준 입력 도구(키보드)를 통해 입력된 데이터를 임시 저장하는 공간
     -명령이나 입력값 뒤에 엔터도 입력값으로 저장 됨
     -더블 쿼테이션(“ “)사이의 지정된 형식으로 데이터를 저장하는 함수

•%d 서식에서 Buffer 처리
     -\n, 공백을 만나기 전까지 정수형 데이터를 읽어 옴(정수형 데이터 이전의 \n, \t, 공백은 무시)

     


•%s 서식에서 Buffer 처리
     -\n, 공백을 만나기 전까지 정수형 데이터를 읽어 옴(정수형 데이터 이전의 \n, \t, 공백은 무시)

     


•%c 서식에서 Buffer 처리
     -\n, \t, 공백 등 모두 단일 문자 하나이므로 읽어 옴

     

     %c를 사용할땐 fflush(stdin)을 사용해서 입력버퍼를 초기화 시켜야 한다~
     리눅스에는 지원안한다ㅠㅠ
     %s를 사용하면 된당.
     




하얀모자의 정보보안 whitehats


'▶ 웹기반 정보보안 과정 > Programming' 카테고리의 다른 글

160316 30번째 강의  (0) 2016.03.20
160315 29번째 강의  (0) 2016.03.19
160312 28번째 강의  (0) 2016.03.16
160310 26번째 강의  (0) 2016.03.16
160309 25번째 강의  (0) 2016.03.16

}