본문 바로가기
Language/C언어

C언어 :: C언어 문법 정리(4)

by stern07s 2023. 3. 25.
728x90
반응형

C언어 :: C언어 문법 정리(4)

문자열함수 (#include )

①strcpy(s1,s2) : s1에 s2를 복사 //중요!!!

②strcmp(s1,s2) : s1과 s2를 비교 (s1> s2:1/ s1<s2:-1/ s1==s2:0) //중요!!!

③strlen(s) : s문자열의 길이 //중요!!

④strrev(s) : s문자열을 꺼꾸로출력

⑤strcat(s1,s2) : 문자열 s2를 s1에 연결

⑥strupr(s) : 소문자를 대문자로(문자열)

⑦strlwr(s) : 대문자를 소문자로

⑧tolower(c) : 대문자를 소문자로(문자)

⑨toupper(c) : 소문자를 대문자로

⑪strchr(s,c) : s에서 최초의 c이후 문자를 구함

⑫strset(s,c) : s를 c로 지정한 문자로 바꾼다

 

배열(Array)

같은형의 자료형으로 구성된 데이타들의 모임

 

1) 1차배열

자료형 배열명[첨자]={숫자1, 숫자2,....};

자료형 배열명[첨자]={'문자1','문자2'...};

자료형 배열명[첨자]="문자열";

int a[]={10,20,30};
int a[5];
int a[];<--- X
 

참고)메모리동적할당(Heap메모리)

#include

① 메모리할당

변수 = (자료형 *)malloc(byte수);
변수 = new 자료형[byte수];
 

② 메모리반환

free(변수);
delete []변수명;
 

2) 2차배열

자료형 배열명[첨자][첨자]={{....},{....}...};

num[3][4]={{10,40,70,100},{20,50,80,110},{30,60,90,120}};
int num[3][4]={10,40,70,100,20,50,80,110,30,60,90,120};
 
포인터(pointer)

메모리상 임의의 위치값

포인터 변수란 임의의 위치값(address)을 기억시킬 변수(4byte)

자료형 *포인터변수명; <--단일pointer
자료형 **포인터변수명; <--이중pointer
(포인터변수의 주소값기억)
(& : 시작주소값)
 
배열과 포인터

값 |배 열| a[0] a[1] a[2]

  |--------------------------

  |포인터| *a *(a+1) *(a+2)

  |   | *&a[0] *&a[1] *&a[2]

------------------------------

주소 | 배 열 | &a[0] &a[1] &a[2]

  |--------------------------

  | 포인터 | a a+1 a+2

 

ex) a[5] ==> a[0] a[1] a[2] a[3] a[4]

     ------------------------------

      k   o   r   e   a

     ------------------------------

     100번지 101번지 102번지 103번지 104번지

 

배열   포인터   의미

----------------------

&a[2]  a+2  102번지

a[3]  *(a+3)  e

a[2][3] *(*(a+2)+3)

&a[2][3] *(a+2)+3

 

함수(Function)

program을 단일화 시킬목적으로 사용

① 동일한 작업을 반복수행

② 변경, 삭제가 쉽다

③ 알아보기 쉽고, 코딩이 쉽다

 

1) 종류

① 내장함수 : 이미 내장된 함수 - #include를 시킴

printf() - #include
getch() - #include
 

② 사용자정의함수 : user가 만든함수 - 선언해야함

 

2) 호출방식

① Call by name : 인자값없고 이름만

② Call by value : 값전달

③ Call by pointer(address) : 주소전달

④ Call by reference : 별명(Alias) ===> C++에 확장된 개념

 

<형식> 결과형 함수명(인자,인자....);

void, int,float,char,char*....
함수명();
함수명(인자,인자...);
변수 = 함수명();
변수 = 함수명(인자,인자...);
 
return; //제어값만 돌려줌(생략가능)
return 변수;
return 수식;
 

(주의) return값은 오로지 1개

return 10; -- O
return 10,20; ---X
 

 

O.S영역(시스템영역)

------------

응용P/G영역(코드영역)

------------

초기화데이터 <---- extern, static (전역변수)

영역(static)

------------

근거리힙

(Near Heap)

------------

스택 <---- auto

(stack) (가장 안정적) (지역변수,매개변수/블럭종료시메모리반환)

------------

원거리힙 <---- new/delete

(Far Heap) malloc()/free()

프로그래머에의해 메모리회수

 

반응형

'Language > C언어' 카테고리의 다른 글

C언어 :: C언어 문법 정리(3)  (0) 2023.03.24
C언어 :: C언어 문법 정리(2)  (0) 2023.03.23
C언어 :: C언어 문법 정리(1)  (0) 2023.03.22
C언어 :: C언어 용어 정리(7)  (0) 2023.03.21
C언어 :: C언어 용어 정리(6)  (0) 2023.01.16

댓글