본문 바로가기
정보처리기사

흥달쌤 깨알 C언어 21~40강 스터디 노트

by mihsyeh 2022. 4. 12.

21~22. 배열

 

배열이란?

  • 같은 자료형의 변수를 연속적으로 묶어 놓은 저장공간
  • 물리적으로 연속적인 공간

 

배열의 선언

int a [5]

int a [5]
자료형 배열명 개수
a[0] a[1] a[2] a[3] a[4]

 

이차원 배열

  • 같은 자료형의 변수를 행과 열의 연속적인 공간으로 묶어 놓은 것

int a [2] [3];

a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]

 


 

23. 포인터

포인터 변수 선언

 


 

24. scanf와 변수

 

sacnf

  • 사용자의 키보드를 입력받을 때 사용하는 함수
  • 형식 : scanf("%d", 변수의주소);

 

scanf 사용법

int a;
scanf("%d", &a);
printf("%d", a);

 


 

25~28. 배열과 포인터

 

이 강의를 작년에 봤어야 했는데.......... ㅠㅠ

 

배열과 포인터의 관계

  • 배열 주소를 포인터 변수를 넣으면 그 배열하고 똑같이 쓸 수 있다

**a

 


 

29~30. 2차원 배열과 포인터

행 대표 신경쓰기

data - data[0]이 대표 배열

 


 

31~34. 포인터 배열

  • 배열의 요소가 포인터(메모리주소)로 이루어진 것.
  • 그 배열의 각각의 요소들이 주소값을 갖고있다

 

%s 주소값 받은 문자열을 출력해라

**포인터 두개 - 값의 값

&a 변수 a의 주소값

 


 

35. 구조체, 포인터 이동

 

구조체란?

  • 여러 변수들을 모아서, 하나의 객체를 구성할 때 사용하는 사용자 정의 타입 객체

 

구조체 구성

struct 구조체명
{
멤버변수 1;
멤버변수 2;
}

 

구조체 정의 및 사용

  • 기본
struct person
{
char *name;
int age;
}
struct person user1;
user1.name = "h user";
printf("%s, user1.name);

 

  • 생성을 같이 하는것?
struct person
{
char *name;
int age;
} test;
test.name="h user";
test.age=40;
printf("%s : %d", test.name, test.age);

 

  • 포인터
struct person
{
char *name;
int age;
}
struct person *p;
p->name = "test_2";
p->age=40;
printf("%s : %d", p->name, p->age);

 

35강 문제 꼭꼭꼭 다시 풀어보기

 


 

36. 배열 포인터

 

  • 배열의 시작 주소값을 저장할 수 있는 포인터 2차원 배열의 구조
  • 그냥 하나의 포인터일 뿐이다

읽어도 아무소용없어요 ㅡㅡ

논리적으로만 자르는겅미

행대표주소가 바뀡미

  • define 매크로
  • malloc 동적으로 메모리에 할당하는것 변수선언할때크기를정해주는 (n * n * sizeof(int));

 


 

37. 함수

 

함수란?

  • 반복적인 수행을 정의해 놓은 작은 프로그램 단위

 

함수 구조

반환타입 함수명(인자들...){
수행할 작업1
수행할 작업2
}

return
void

 

swap 알고리즘

 


 

38. 함수와 반복문

 

용가리 통뼈인 개발자라는 것은,,, hoxy 고인물 시조새 조상님같은 맥락...?

 


 

39. 함수에 주소전달

 

  • 주소 전달 = 포인터를 전달
  • call by value 함수를 호출할때 밸류값만을 호출하겟다
  • call by reference 주소값, 객체, 오브젝트, 배열을 전달하겟다

 

40. 함수와 변수의 유효범위

 

나와 가장 가까이에있는 변수를 참조한다

전역변수 - 모든 프로그램에 영향

%3d

a=b=c=4

a선언 안했으면

a선언을 한 전역변수에 4 넣어주기.... ㅇ0ㅇ

댓글