본문 바로가기
코스웨어/10년 시스템제어

시스템 제어 - 김민철 - 일일보고서

by 알 수 없는 사용자 2010. 3. 29.
728x90
반응형
작성자 - 김민철
작성일 - 03.29

1) 배열 : 연관이 있는 다수의 데이터를 사용자가 묶어서 하나의 자료형으로 표현



iP = K;
         //둘다 주소이므로 대입이 가능함
K = iP; 
         //K 는 상수 값이므로 대입이 불가능, 배열의 이름은 주소.
         //주소 : 주소상수 => 포인터와 배열의 차이점

EX)
int A[25];                          for(iCat = 0; 20 > iCat; ++iCat)          
int iCat;               =>          {
                                           scanf("%d", A + iCat); 
                                                      or  
                                           scanf("%d",&A[iCat]);      
                                        }
요약하자면..
배열을 쓰면 그배열의 이름이 주소 그자체를 의미한다.
그러므로 그 이름은 상수가 된다.
int iNum[10] 이라는게있으면 iNum은 iNum[0]의 주소이며 상수이기때문에 iNum=변수;는 불가능하다.
int *iP;
iP = iNum; 을 하게 되면 iNum의 주소를 정수화 시켜서 iP가 가지고 있게되며
P[0]은 *P와 마찬가지인 뜻이다.

 주소의 배열식 표기법 주소의 포인터식 표기법  메모리  값의 배열식 표기법  값의 포인터식 표기법 
 &score[0]  score+0  0012FF50  score[0]  *(score+0)
 &score[1]  score+1  0012FF54  score[1]  *(score+1)
 &score[2]  score+2  0012FF58  score[2]  *(score+2)
 &score[3]  score+3  0012FF62  score[3]  *(score+3)
 &score[4]  score+4  0012FF66  score[4]  *(score+4)



- 배열의 개수를 출력



 - 버블 정렬 : 배열의 응용인 정렬을 위한 기본적인 알고리즘
                   앞뒤의 수를 비교하여 오름차순으로 정렬




 - 다차원 배열
 



- 문자열

문자열 길이를 알수있는 프로그램

#include <stdio.h>

int main()
{

  char Text[]="This is";
  char *P=Text;
  int iCnt;

  for(iCnt=0;0!=*P;++iCnt)
  {
    ++P;
  }
  printf("%d\n",iCnt);
  
  return 0;
}



문자열 상수의 마지막엔 '\o'(null)이 포함되므로.
문자열"this is"의 자리수는 7+1(null자리) 총 8개이다.
위의 프로그램에서는 0이 아닐때까지 실행하므로 문자열 자리수를 알수있다.


응용해서 함수를 만들어서 문자길이를 알아낼수있는 프로그램도 만들수있다


헐... 파일이.. 그림이라니... ㅠㅠ 나중에 수정하겠습니다 -_-; 시간이 없어서. 아놔...
728x90