네트워크 보안 수업/C언어(19)
-
네트워크 보안 수업 20일차 - 코리아 정보보안 IT학원
구조체(struct) - 사용자 정의 데이터 타입- 기본 타입외에 사용자가 직접 데이터 타입을 정의할 수 있다. - 배열의 단점: 같은 타입의 연속ex) 성적: 정수, 실수, 이름, ...(x) 구조체의 정의 struct 구조체 이름{int x;int y;double d;member...}; * 구조체의 멤버는 어떠한 것도 올 수 있다.(함수는 제외)ex) 일반변수, 포인터 변수, 배열, 구조체, ... 구조체의 선언 ; int a; 성적 처리- 한 학생의 국어, 영어, 수학, 총점, 평균- 학생의 이름 struct student {int lang;int eng;int math;int total; float avg;char name[10];}; * 구조체의 멤버는 초기화 될 수 없다. struct stu..
2016.04.25 -
네트워크 보안 수업 19일차 - 코리아 정보보안 IT 학원
포인터 배열 - 주소를 원소로 갖는 배열 ex) char *arr[] 배열 포인터 - 배열을 나타내는 포인터- 다차원 배열 #include void print_array(int (*ptr)[3]){ int i=0; int j=0; for(i=0;i
2016.04.22 -
네트워크 보안 수업 18일차 - 코리아 정보보안 IT학원
[실습] - 배열을 초기화하는 함수 void init_arr(int *arr, int size)를 작성- 입력받은 배열을 3의 배수로 초기화 할 수 있도록 한다. - 해당 배열의 내용을 main 함수에서 출력해서 확인 #include void init_arr(int *arr, int size){ int three=3; int i=0; for(i=0;i
2016.04.21 -
네트워크 보안 수업 17일차 - 코리아 정보보안 IT학원
포인터 변수 - 일반 변수- 배열 변수- 포인터 변수 - 주소를 다루는 변수 포인터 변수의 선언 int *ptr; 포인터 변수의 초기화 int ptr=0;int *ptr = null; *** 포인터 변수의 타입은 가르키려는 메모리의 타입을 나타낸다*** 포인터 변수는 8바이트 고정 크기(64bit) 포인터 변수의 활용 - 포인터 변수를 통해서 메모리에 직접 접근- 배열을 전달하는 경우- 동적 메모리 #include int main(int argc, char *argv[]){ int *ptr = NULL; int arr[5]={1,2,3,4,5}; ptr=arr; printf("ptr size : %d\n", sizeof(ptr)); printf("arr[0] value: %d \n", *arr); pri..
2016.04.20 -
네트워크 보안 수업 16일차 - 코리아 정보보안 IT학원
다차원 배열 - 배열 x 배열 .. 다차원 배열의 선언 - int arr2[2][3];- int arr3[2][3][5]; 다차원 배열의 초기화 - int arr2[2][3] = {{1,2,3}, {4,5,6}} [실습]#include int main(int argc, char *argv[]){ int arr2[2][3]={{1,2,3},{4,5,6}}; printf("arr2 addr: %08x \n",arr2); printf("arr2[0] addr: 0x%08x \n", arr2[0]); printf("arr2[0] addr: 0x%08x \n", *arr2); printf("arr2[0] first value: %d \n", arr2[0][0]); printf("arr2[0] first value..
2016.04.19 -
네트워크 보안 수업 15일차 - 코리아 정보보안 IT학원
문자열 다루기 - c언어에서는 문자열을 다룰 수 있는 자료형이 존재하지 않는다.- 기본 자료형은 전부 숫자, 문자 상수만을 다룰 수 있다. - 문자열의 끝에 반드시 0x00(NULL) 문자가 들어간다- 널 문자는 문자열의 끝을 나타낸다. [실습]: reverse.c - 임의의 문자열을 거꾸로 출력하는 프로그램을 작성 char str[] = "hello";출력 : olleh #include int main(int argc, char *argv[]){ char str[]="abcdefghijklmnopqrstuvwxyz"; int loop1; int size=sizeof(str); for(loop1=size-1;loop1>=0;loop1--){ printf("%c",str[loop1]); } printf("..
2016.04.18 -
네트워크 보안 수업 14일차 - 코리아 정보보안 IT학원
변수의 확장 - 값- 크기- 주소(address) 변수의 주소? - 변수의 위치(메모리에서의) 포인터 연산자 : 주소 연산자 - &, * 일반 변수 - 변수는 값을 나타낸다! - 최대 8바이트까지만 표현 가능(64비트 시스템 기준)- 문자열의 표현의 한계- 여러개의 값(집합)을 표현... 배열 변수 - 같은 타입의 변수의 열(연속적으로 이어진 변수들)- 서로 다른 타입의 열은 만들 수 없다 배열 변수의 선언 int arr[10]; 배열 변수의 접근 arr[0] = 10;arr[0]; #include int main(int argc, char *argv[]) { int two=2; int arr[3]; printf("value : %d \n", two); printf("size : %d\n",sizeof(..
2016.04.15 -
네트워크 보안 수업 13일차 - 코리아 정보보안 IT학원
함수 - 원형 선언- 리턴- 기능 주석 - 함수의 기능을 설명- 프로그램에 부가적인 설명 논리식참 --> 1 or 0이 아닌 숫자거짓 --> 0 리턴0: 참의 의미0이 아닌 값: 에러 함수와 변수의 영역(scope) - 지역변수(local variable)- 함수 안에 선언- 선언된 함수의 영역을 벗어날 수 없다. - 전역변수(global variable)- 함수 바깥에 선언- 어떤 함수든 참조가 가능(때문에 위험한 변수) 외부변수의 참조(선언과 정의) test.c#include //전역변수의 선언int var = 300; int main( int argc, char *argv[] ){ int var = 100; printf("var: %d \n", var ); test2(); return 0;} tes..
2016.04.14 -
네트워크 보안 수업 12일차 - 코리아 정보보안 IT학원
함수(function) - 코드의 효율적인 관리- 코드를 기능별로 분류- 코르들 재사용 함수의 기본 형태 - 함수의 선언- 함수의 호출이나 정의보다 먼저 나와야한다.- 컴파일러에게 해당 함수의 사용을 알림- 선언과 정의는 중복이 가능 (인자, ...); - 함수의 정의- 함수의 기능을 정의하는 부분- 함수의 선언과 동일 (인자, ...){//기능} - 함수의 호출 (값, ...); [실습]: sample01.c - 다음 두 수의 합을 구하는 프로그램을 작성 10, 202, 5100, 20012, 151000, 2000 #include int main(int argc, char *argv[]){ return 0;} 덧셈 함수의 선언과 정의 - 선언 void add( int num1, int num2); -..
2016.04.12 -
네트워크 보안 수업 10일차 - 코리아 정보보안 IT학원
[실습] 루프의 중첩 - 구구단 출력( 2 ~ 9 )- 구구단 출력/횡으로- 구구단 출력/3단씩 끊어서 #include int main(int argc, char *argv[]) { int i; int j; int k; int three=4; int num=2; for(k=1;k
2016.04.08