C언어의 기초
본 자료는 9페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
해당 자료는 9페이지 까지만 미리보기를 제공합니다.
9페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

C언어의 기초에 대한 보고서 자료입니다.

목차

제1장. C언어의 개요
1-1. C언어의 특징
1-2. C언어의 장점

제2장. C언어의 구조
2-1. C프로그램의 기본적인 구조
2-2. C프로그램의 기본요소

제3장. 기본입출력과 데이터
3-1. printf()함수
3-2. scanf()함수
3-3. printf()함수에 사용되는 자리수(필드폭) 지정포맷
3-4. 데이터 식별자
3-5. 상수
3-6. 변수와 변수형

제4장. 연산자
4-1. 산술 연산자
4-2. 논리 연산자
4-3. 관계 연산자
4-4. 비트 연산자
4-5. 기타 연산자들
4-6. 연산자의 우선순위

제5장. C언어의 제어
5-1. if(선택조건문)
5-2. switch case(구분조건문)
5-3. for(한계선반복문)
5-4. while(무한정형 선 반복문)
5-5. do while(무조건 반복 명령문)
5-6. break문
5-7. continue문

제6장. 배열과 포인터
6-1. 배열
6-2. 포인터

본문내용

변수가 가지고 있는 메모리 주소를 의미한다.
■ 예제
#include
main()
{
char *ptr; ← 포인터형(문자형으로 선언)
char a; ← 문자형(일반문자형으로 선언)
a=‘X’; ← ① (‘X’를 a에 대입)
printf(“\n 변수 a의 값 : %c”, a); ← a값 X를 출력
ptr=&a ← ② 포인터변수는 주소값만 가질수 있음(a값이 저장된 주소를 포인터변수(ptr)주소에 대입)
printf(“\n 변수 *ptr의 값 : %c”, *ptr); ← 포인터(ptr)주소에 저장된데이터를 출력
printf(“\n 변수 ptr의 값 : %x”, ptr); ← 포인터변수(ptr)가 저장된 주소를 출력
*ptr=‘Y’; ← ③ Y를 포인터변수(ptr)에 데이터로 저장
printf(\n 변수 a의 값 : %c, a); ← a에 저장된값을 출력(위의 *ptr에 Y를 저장했으므로 Y출력)
printf(\n 변수 *ptr의 값 : %c, *ptr); ← 포인터(*ptr)에 저장된 데이터 Y를 출력
printf(\n 변수 ptr의 값 : %x, ptr); ← 포인터변수(ptr)가 저정된 주소를 출력
}
■ 실행결과
변수 a의 값 : X
변수 *ptr의 값 : X
변수 ptr의 값 : ffd6
변수 a의 값 : Y
변수 *ptr의 값 : Y
변수 ptr의 값 : ffd6
☞ 포인터 변수는 항상 주소값만 가질수 있다. 예제 프로그램의 ②번 명령을 살펴보면 “ptr=&a;” 포 인터변수(ptr)는 변수 “a”가지는 데이터는 대입받을수 없고 주소만을 대입받을수가 있기 때문에 주소연산자(&)기입하지 않으면 에러가 발생한다.
☞ “*ptr=a;”와 같은 명령은 정상적으로 작동한다. 왜냐하면 *ptr과 같은 명령은 주소가 아닌 데이터 (*와 함께 사용되었으므로)만을 가질수 있으며 a는 주소가 아닌 데이터를 나타내기 때문이다.
☞ 포인터 변수는 일반 변수와는 다르게 주소를 가지고 작업을 하므로 배열과 유사한 기능으로 사용 할 수도 있다. 더욱이 일차배열, 이차배열, 다차원 배열과 같이 포인터에도 일차 포인터와 이차 포인터, 다차원 포인터가 존재한다.
① 일차포인터(1차원)
하나의 주소만을 가지는 포인터 변수를 일차 포인터라고 한다. 일차 포인터는 일차 배열을 동적(Dynamic)으로 관리하기 위해서 많이 사용되며 다음과 같은 형태로 선언한다.
“*”이 하나이면 일차포인터를 의미한다
포인터변수이름이 필요하다면 콤마로 구별하여 나열할 수 있다
↘ ↘
포인터 변수형 *포인터 변수이름,.........;
↗ ↖
포인터 변수형은 C언어가 제공하는
모든형을 사용할 수 있다
선언 후에는 반드시 세미콜론을 명시한다
일차포인터의 초기화
일차 포인터 중에서 문자형 포인터는 문자열 상수(즉“ ”사용)를 사용하여 포인터를 초기화할 수 있다. 그러나 문자 상수나 숫자 상수를 사용해서는(즉{}사용) 포인터를 초기화할 수 없으므로 주의해야 한다. 문자열 상수를 가지고 초기값을 지정하는 방법은 일차배열과 동일하다.
#include
main()
{ string은 일차포인터

char *string=“hongildong”;
printf(“포인터 문자열 : %s”, string);

} 문자열 출력 포맷
메모리
초기값이 할당된 메모리
string이 지칭하는 메모리주소



포인터변수 →
string
주소
h
*string

o
*(string+1)
초기값으로 지정된 문자열을 주소로 조작
n
*(string+2)
g
*(string+3)
i
*(string+4)
※배열은 정적인 할당이며 포인터는 동적인 할당이다.
따라서 배열 선언할 때 크기를 명시해야 하지만 포인터는
크기를 명시할 필요가 없다
l
*(string+5)
d
*(string+6)
o
*(string+7)
n
*(string+8)
g
*(string+9)
NULL
← 자동삽입(%s 포맷)
② 이차포인터(2차원)
이차 포인터를 위한 변수형은 C 언어가 제공하는 모든 형(기본형,결합형,조합형)을 사용할수 있다. 이차 포인터는 두개의 일차 포인터가 연속적으로 연결된 형태를 가진다.
예를 들어 char **string; 명령에서
**string : string은 char(문자)형 데이터를 가진다.
*string : **string이 수록되어 있는 주소를 지칭한다.
string : *string이 수록되어 있는 주소를 지칭한다.
#include
main()
{
char **string;
char fname[]="jung", gname[]="yoon ki";
*string=fname;
*(string+1)=gname;
printf("\n%s %s",*string,*(string+1));
printf("\n%c%c%c%c", **string, *(*string+1),*(*string+2),*(*string+3));
}
실행결과)
jung yoon ki
jung
fname
fname[0]
**string
j
*(*string+1)
u
fname[1]
*(*string+2)
n
fname[2]
string
주소
*(*string+3)
g
fname[3]
*string
주소
자동삽입
NULL
fname[4]
*(string+1)
주소
gname
gname[0]
**(string+1)
y
*(*string+1)+1)
o
gname[1]
*(*string+1)+2)
o
gname[2]
*(*string+1)+3)
n
gname[3]
*(*string+1)+4)
[space]
gname[4]
*(*string+1)+5)
k
gname[5]
*(*string+1)+6)
i
gname[6]
*(*string+1)+7)
NULL
gname[7]
자동 삽입
*string문자열 “jung”이들어었는 배열(fname)의 시작 주소를 가지며 *(string+1)은 문자열“yoon ki”이 들어있는 배열(gname)의 시작 주소를 가진다. 또한 string은 *string, *(string+1)등이 들어있는 시작 주소를 가진다. 그리고 **string, *(*string+1),...등은 이중포인터가 지칭하는 데이터를 나타낸다
  • 가격3,000
  • 페이지수27페이지
  • 등록일2005.04.05
  • 저작시기2005.04
  • 파일형식한글(hwp)
  • 자료번호#291368
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니