(kosta 교육)프로그래밍 공부 - 9일차

23749 단어 KOSTAKOSTA

오늘 학원을 가기 위해 집을 나왔는데 기분이 너무 좋았다. 오늘도 진행형!

다시 한 번 확인할 내용

  • 컴파일언어, 인터프리터언어
  • 인터프리터언어(python, javascript ...)
  • 문자열 상수, 문자열 변수

이제 마지막으로 포인터만 배우면 C 언어는 끝이난다.
예전에는 떠나 보내는 것을 매우 잘 했는데 이제는 하나를 떠나 보내면 마음이 쓸쓸하다.
갑자기 혼자 헛소리를 한다.^^

배열의 이해와 사용

  • 배열은 배열의 요소끼리 복사를 해야한다.
#include<stdio.h>

int main(void) 
{
	
	int arr1[5] = { 1, 2, 3, 4, 5 };
	int arr2[5];
	
	arr2 = arr1; // arr2는 배열의 주소값이다. // 에러가 발생한다.

	return 0;
}

오류 수정하고 나서 결과

#include<stdio.h>

int main(void) 
{
	
	int arr1[5] = { 1, 2, 3, 4, 5 };
	int arr2[5];
	
	// 배열값 복사
	for (int i = 0; i < sizeof(arr1) / sizeof(int); i++) {
		arr2[i] = arr1[i];
	}
	 
    // 복사된 배열 확인하기
	for (int i = 0; i < sizeof(arr1) / sizeof(int); i++) {
		printf("%d\n", arr2[i]);
	}

	return 0;
}

배열의 역순으로 저장하기

#include<stdio.h>

int main(void) 
{
	
	int arr1[5] = { 1, 2, 3, 4, 5};
	int arr2[5];
	
	int length = sizeof(arr1) / sizeof(int);
	for (int i = 0; i < sizeof(arr1) / sizeof(int); i++) {
		arr2[i] = arr1[length - i - 1];
	}
	 
	for (int i = 0; i < sizeof(arr1) / sizeof(int); i++) {
		printf("%d\n", arr2[i]);
	}

	return 0;
}

문자열

  • 문자열은 1 byte
  • 문자열 마지막에는 null 이 붙는다.
  • 문자열의 길이가 얼마가 될지 모르는 경우 배열의 길이를 생략할 수 있다.
	char str[12] = "Hello World";

int main(void) 
{
	
	char str[] = "Hello World";
	printf("** 문자열 변경 전 ** \n");
	printf("%s \n\n", str);

	str[6] = 'K';
	str[7] = 'o';
	str[8] = 'r';
	str[9] = 'e';
	str[10] = 'a';

	printf(" ** 문자열 변경 후 ** \n");
	printf("%s\n", str);

	return 0;
}

배열의 길이는 100이지만, 널 문자'\0'를 만날 때까지만 출력한다.

#include<stdio.h>

int main(void) 
{
	
	char str1[100] = "Beautiful";

	for (int i = 0; i < 10; i++) {
		printf("%c", str1[i]);
	}
	printf("\n");
	printf("str1 = %s\n", str1);


	return 0;
}

널 관련 두 번째 문제

#include<stdio.h>

int main(void) 
{
	
	char str1[] = "Hello\0World";
	printf("str1 = %s\n", str1);

	str1[3] = '\0';
	printf("str1 = %s\n", str1);

	str1[0] = '\0';
	printf("str1 = %s\n", str1);

	return 0;
}

ch는 아스키코드로 65를 나타낸다.

#include<stdio.h>

int main(void)
{
	char ch = 'A';

	for (int i = 0; i <= 25; i++) {
		printf("%c\n", ch + i);
	}

	return 0;
}

배열에 바로 입력값을 받을 수 있다.

#include<stdio.h>


void Max(int a, int b);

int main(void)
{
	int arr[2];

	printf("a를 입력하세요: ");
	scanf_s("%d", &arr[0]);
	printf("b를 입력하세요: ");
	scanf_s("%d", &arr[1]);

	Max(arr[0], arr[1]);

	return 0;
}


void Max(int a, int b) {

	if (a > b) {
		printf("큰 수는 %d", a);
	}
	else if (a < b) {
		printf("큰 수는 %d", b);
	}
	else {
		printf("두 수는 같습니다.");
	}
}

좋은 웹페이지 즐겨찾기