๐—ฃ๐—ฟ๐—ผ๐—ท๐—ฒ๐—ฐ๐˜ ๐—”๐—ฉ๐—ฆ

Project AVS Since 2023.01.27

๐Ÿ’ป ์†Œํ”„ํŠธ์›จ์–ด | Software/ํ”„๋กœ๊ทธ๋ž˜๋ฐ | C์–ธ์–ด | C

๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“œ๋Š” C์–ธ์–ด ์ •๋ณด ๋ชจ์Œ #๋ฐฐ์—ด #ํฌ์ธํ„ฐ

์•„๋ฒต AVS 2023. 4. 25. 19:59

CTRL + F ๋กœ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰

๋ณธ ๊ธ€์€ ํ•„์ž๊ฐ€ C์–ธ์–ด๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์“ฐ๋Š” ์ผ์ข…์˜ ์ €์žฅ ๋…ธํŠธ์ž…๋‹ˆ๋‹ค.

ํ•„์ž๋„ ๋ฐฐ์šฐ๋Š” ์ž…์žฅ์œผ๋กœ

ํ•„์š”ํ•˜์‹  ๋ถ„ ๋“ค์€ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๋“ฏ ํ•˜๋‹ค.

์ด์ „ ํŽธ

2023.04.11 - [์†Œํ”„ํŠธ์›จ์–ด | Software/ํ”„๋กœ๊ทธ๋ž˜๋ฐ | C์–ธ์–ด | C] - ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“œ๋Š” C์–ธ์–ด ์ •๋ณด ๋ชจ์Œ #๊ธฐ๋ณธ

 

๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“œ๋Š” C์–ธ์–ด ์ •๋ณด ๋ชจ์Œ #๊ธฐ๋ณธ

CTRL + F ๋กœ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ ๋ณธ ๊ธ€์€ ํ•„์ž๊ฐ€ C์–ธ์–ด๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์“ฐ๋Š” ์ผ์ข…์˜ ์ €์žฅ ๋…ธํŠธ์ž…๋‹ˆ๋‹ค. ํ•„์ž๋„ ๋ฐฐ์šฐ๋Š” ์ž…์žฅ์œผ๋กœ ํ•„์š”ํ•˜์‹  ๋ถ„ ๋“ค์€ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๋“ฏ ํ•˜๋‹ค. ๋น„์ฃผ๊ธฐ์  ์—…๋ฐ์ดํŠธ ์˜ˆ์ • ๋งˆ

avs-won.tistory.com

 

 

๋น„์ฃผ๊ธฐ์  ์—…๋ฐ์ดํŠธ ์˜ˆ์ •

๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ 2023 05 03 ๋

โ— 1์ฐจ์› ๋ฐฐ์—ด


โ€ป ๋ฐฐ์—ด์˜ ๊ธธ์ด ์ •๋ณด๋Š” ์ƒ์ˆ˜๋กœ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

ํ—ˆ๋‚˜ ์ตœ๊ทผ์—๋Š” ์ƒ์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ณ€์ˆ˜ ์„ ์–ธ๋„ ํ—ˆ์šฉํ•˜๋‚˜ ๋ฒ”์šฉ์ ์œผ๋กœ ์ƒ์ˆ˜ ์„ ์–ธ์„ ๊ถŒ์žฅํ•œ๋‹ค.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
	int arr1[7]; // ์ƒ์ˆ˜๋กœ ์ง€์ •
	int len = 20;
	int arr2[len]; // ๋ณ€์ˆ˜๋กœ ์ง€์ •
	return 0;
}

 

โ€ป char ํ˜•์˜ ๋ฐฐ์—ด์„ ์„ ์–ธ์‹œ ๋ฌธ์ž์—ด ์ €์žฅ๋งŒ ์•„๋‹ˆ๋ผ ๋ณ€๊ฒฝ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

โ€ป charํ˜• ๋ฐฐ์—ด์„ ์„ ์–ธ์‹œ ๋ฌธ์ž์—ด ๋์— "\0"๋ผ๋Š” escape sequence(์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž)๊ฐ€ ์žˆ๋‹ค๋Š”๊ฑธ ๋ช…์‹ฌํ•ด์•ผํ•œ๋‹ค.

๋‹ค๋ฅธ๋ง๋กœ "\0"์„  null ์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. 

ex: int char[] = "Good" ์ด๋ผ๊ณ  ์„ ์–ธํ•˜๋ฉด ์‹ค์ œ๋กœ๋Š” G,o,o,d,\0 ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑ ๋˜์–ด ์žˆ๋‹ค.์•„์Šคํ‚ค ์ฝ”๋“œ ๊ฐ’์œผ๋กœ 0์ธ \0 ์ด๋‹ค.

 

โ€ป scanf ๋กœ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ ๋ฐ›์„๋•Œ๋Š” %s ๋ฅผ ์‚ฌ์šฉ.

๋‹ค๋งŒ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๋Š” ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ๋Š” ๋ฐฐ์—ด ์•ž์— & ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉ ํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

 

โ€ป C์–ธ์–ด์—์„œ ํ‘œํ˜„ํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด ๋์—๋Š” ๋„(\0) ๋ฌธ์ž๊ฐ€ ์ž๋™์œผ๋กœ ์‚ฝ์ž…๋œ๋‹ค.

 

โ€ป ๋ฌธ์ž์—ด ์ขŒ์šฐ ๋ฐ˜์ „ C์–ธ์–ด ์ฝ”๋“œ

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	char arr[100];
	int i,lens=0;
	char temp;
	printf("์˜์–ด ๋‹จ์–ด ์ž…๋ ฅ ํ•˜์„ธ์—ฐ");
	scanf("%s", arr);
	
	while (arr[lens] != '\0')
		lens++;

	for (i = 0; i < lens/2; i++)
	{
		temp = arr[i];
		arr[i] = arr[(lens-i)-1];
		arr[(lens - i) - 1] = temp;
	}
	printf("์ขŒ์šฐ๋ฐ˜์ „ ๋ฌธ์ž์—ด : %s \n", arr);

	return 0;
}

 

โ— ํฌ์ธํ„ฐ 


โ€ป C์–ธ์–ด์—์„œ ๋ณ€์ˆ˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์กด์žฌํ•œ๋‹ค. ์ด ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ๊ฐ๊ฐ์˜ ์ฃผ์†Œ๊ฐ€ ์žˆ๋‹ค.

โ€ป ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ : ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜

32๋น„ํŠธ ์‹œ์Šคํ…œ์—์„œ ๊ทธ ํฌ๊ธฐ๋Š” 4๋ฐ”์ดํŠธ , 64๋น„ํŠธ ์‹œ์Šคํ…œ์—์„  8๋ฐ”์ดํŠธ

 

โ€ป ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ ์„ ์–ธ์‹œ '*'์˜ ์œ„์น˜๋Š” ์ƒ๊ด€ X 

 

โ€ป ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ ์„ ์–ธ ์˜ˆ์‹œ : int * pointer_1;

 

โ€ป ํฌ์ธํ„ฐ์˜ ํ˜•์— ์ฃผ์˜ํ•˜๋ผ intํ˜• ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ ํ•ด๋†“๊ณ  doubleํ˜• ๋ณ€์ˆ˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’์„ ์ฃผ๋ฉด ์•„๋ฌด์ง์ด ์“ธ๋ชจ ์—†๋‹ค.

 
โ€ป ํฌ์ธํ„ฐ ์„ ์–ธ์‹œ ์ดˆ๊ธฐํ™”๋Š” ํ•„์ˆ˜๋‹ค. 0์ด๋‚˜ NULL๋กœ ์ดˆ๊ธฐํ™” ํ•˜์ž.


โ— ํฌ์ธํ„ฐ์™€ ๋ฐฐ์—ด


โ€ป ๋ฐฐ์—ด์˜ ์ด๋ฆ„์€ ํฌ์ธํ„ฐ์ด๋‹ค.

 

โ€ป ํฌ์ธํ„ฐ์™€ ๋ฐฐ์—ด์˜ ์ฐจ์ด์ ์„ ๋“ค์–ด๊ฐ€์ž.

ใ„ดํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋Š” ์ฃผ์†Œ ๊ฐ’ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‚˜ ๋ฐฐ์—ด์˜ ์ด๋ฆ„์€ ๋ถˆ๊ฐ€๋Šฅ ํ•˜๋‹ค.

 

โ€ป int * pointer = &arr[0]   ์ด ๋ฌธ์žฅ์€ 

int * pointer = arr ๊ณผ ๊ฐ™๋‹ค.

 

โ€ป Typeํ˜• ํฌ์ธํ„ฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœ n๋งŒํผ ๊ฐ’์„ ์ฆ๊ฐ์‹œ n x (Type์˜ ํฌ๊ธฐ) ๋งŒํผ ์ฃผ์†Œ ๊ฐ’์ด ์ฆ๊ฐ ํ•œ๋‹ค.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int array[3] = { 10,20,30 };
	int* pointer = array;
	printf("%d %d %d \n", *pointer, *(pointer + 1), *(pointer + 2));

	printf("%d ", *pointer); pointer++;
	printf("%d ", *pointer); pointer++;
	printf("%d ", *pointer); pointer--;
	printf("%d ", *pointer); pointer--;
	printf("%d ", *pointer); printf("\n");

	return 0;
}

๊ฒฐ๊ณผ

โ€ป arr[i] == *(arr+i) ๊ฒฐ๋ก 

 

โ€ป char string[ ] = "QWERTY" ๋ณ€์ˆ˜ ํ˜•ํƒœ์˜ ๋ฌธ์ž์—ด

๋ฌธ์ž์—ด ์ „์ฒด๋ฅผ ์ €์žฅ

 

โ€ป char * string_2 = " POWER " ์ƒ์ˆ˜ ํ˜•ํƒœ์˜ ๋ฌธ์ž์—ด

๋ฌธ์ž์—ด P์˜ ์ฃผ์†Œ ๋ฐ˜ํ™˜

 

โ€ป ๋ฐฐ์—ด์— ์žˆ๋Š” ๊ฐ’์„ ํฌ์ธํ„ฐ ์ ‘๊ทผ๋ฒ•์œผ๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋Š” ์ฝ”๋“œ

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int arr[6] = { 1,2,3,4,5,6 };
	int* ptr = &arr[0];
	int* ptr_last = &arr[5];
	int temp = 0;

	for (int i = 0; i < 3; i++)
	{
		temp = *ptr;
		*ptr = *ptr_last;
		*ptr_last = temp;
		ptr++, ptr_last--;
	}

	for (int k = 0; k < 6; k++)
		printf("%d ", arr[k]);


	return 0;
}

 

โ— ํ•จ์ˆ˜ ์ธ์ž ์ „๋‹ฌ #๋ฐฐ์—ด


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void Func(int number)
{
	printf("%d \n", ++number);
}

int main(void)
{
	int k = 1;
	Func(k);

	return 0;
}

 

โ€ป Func ํ•จ์ˆ˜์— k ์ž์ฒด๊ฐ€ ์•„๋‹Œ k์— ์ €์žฅ๋œ ๊ฐ’์„ ์ „๋‹ฌ

 

โ€ป ์—ฌ๊ธฐ์„œ k๋Š” ์ธ์ž  number์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋‹ค.

 

โ€ป ๋ฐฐ์—ด์„ ์ธ์ž๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฒ•

void Func(int * any) { ..........}ํ˜น์€void Func(int any[ ] ) {.....} ํ˜•ํƒœ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.ํ›„์ž๊ฐ€ ์ข€ ๋” ๋งŽ์ด ์“ฐ์ธ๋‹ค.

 

โ€ป Call by value //// Call by reference


โ€ป ์œ„ ํ‘œํ˜„์€ ํ•„์ž๊ฐ€ ๋Œ€ํ•™๊ต 1ํ•™๋…„๋•Œ ๋‹ค๋‹ˆ๋ฉด์„œ C์–ธ์–ด ์ „๊ณต ์ˆ˜์—…๋•Œ ๋“ค์€ ํ‘œํ˜„์ด์—ˆ๋Š”๋ฐ

์ฒ˜์Œ์—” ์‚ฌ์‹ค ๊ทธ๋ƒฅ ๋ฌด์‹œํ•˜๊ณ  ํ˜๋ ค ๋“ค์—ˆ๋‹ค. (ํ•˜์ง€๋งŒ ์ง€๊ธˆ ๋‹ค์‹œ ๋ฐฐ์šธ๋ ค๊ณ  ํ•œ๋‹ค.)

 

โ€ป Call by Value : ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ํ˜•ํƒœ

โ€ป Call by reference : ๋ฐฐ์—ด,์ฃผ์†Œ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ํ˜•ํƒœ

 

โ€ป scanf ํ•จ์ˆ˜ ์‚ฌ์šฉ์‹œ &๊ธฐํ˜ธ์˜ ์˜๋ฏธ๊ฐ€ ์ด์ œ ๋ญ”์ง€ ์•Œ ๊ฒƒ์ด๋‹ค.

๋ฐ”๋กœ ์ฃผ์†Œ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š”๊ฒƒ์ด๋‹ค.

 

๋‹ค๋งŒ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๋Š” 

scanf(" %s " , string );

์œ„์˜ ํ˜•ํƒœ๋Š” ์™œ &๋ฅผ ๋ถ™์ด์ง€ ์•Š์„๊นŒ

๋‹ต์€ ์ด๋ฏธ ๋ฐฐ์› ๋‹ค. ๋ฌธ์ž์—ด ์ž์ฒด๊ฐ€ ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ฃผ์†Œ ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

โ€ป ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ const ๊ด€๊ณ„

int * const pointer = &input;

pointer๋Š” ์ƒ์ˆ˜๊ฐ€ ๋˜์–ด์„œ ์ฃผ์†Œ ๊ฐ’์ด ํ•œ ๋ฒˆ ์ €์žฅ๋˜๋ฉด ๊ทธ ์ดํ›„๋กœ ๊ฐ’์„ ๋ชป ๋ฐ”๊ฟˆ

 

 

๋ฐ˜์‘ํ˜•