๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปTIL9. C : ๋ฐฐ์—ด, ๋ฌธ์ž์—ด, ๋ช…๋ นํ–‰ ์ธ์ž

Lilyยท2021๋…„ 5์›” 30์ผ
0

Today I Learned

๋ชฉ๋ก ๋ณด๊ธฐ
9/30
post-custom-banner

์ด ๊ธ€์€ Boostcourse [๋ชจ๋‘๋ฅผ ์œ„ํ•œ ์ปดํ“จํ„ฐ ๊ณผํ•™]์„ ์ˆ˜๊ฐ•ํ•˜๊ณ  ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿงธ ๋ฐฐ์—ด (array)

๋ฐฐ์—ด : ๊ฐ™์€ ์ž๋ฃŒํ˜•์œผ๋กœ ๋œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ์ €์žฅํ•œ ๊ฒƒ

//     ๋ฐฐ์—ด์˜ ์ด๋ฆ„
    int scores [3];
// ์ž๋ฃŒํ˜•     ๋ฐฐ์—ด์˜ ํฌ๊ธฐ

    scores[0] = 90;
    scores[1] = 88;
    scores[2] = 60;

๋ฐฐ์—ด์˜ ๊ฐ ๊ฐ’์€ ์ธ๋ฑ์Šค(index)๋ฅผ ๊ฐ–๊ณ ์žˆ๋‹ค. ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฉฐ, ์ธ๋ฑ์Šค๋ฅผ ๋ฐฐ์—ด๋’ค์˜ [ ]์•ˆ์— ์ž…๋ ฅํ•œ๋‹ค. ์ธ๋ฑ์Šค๋กœ ๋ฐฐ์—ด์˜ ์›ํ•˜๋Š” ์œ„์น˜์— ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿงธ ์ „์—ญ๋ณ€์ˆ˜ (global)

์ฝ”๋“œ ์ „๋ฐ˜์— ๊ฑธ์ณ ๋ณ€ํ•˜์ง€ ์•Š๋Š”, ๊ณ ์ •๋œ ๋ณ€์ˆ˜๋ฅผ ์ „์—ญ๋ณ€์ˆ˜๋กœ ์ •์˜ํ•œ๋‹ค. mainํ•จ์ˆ˜๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ƒ์„ฑํ•˜๋ฉฐ, ๋ณดํ†ต ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ๋Œ€๋ฌธ์ž๋กœ ์ €์žฅํ•œ๋‹ค.

const int N = 3;       //์ „์—ญ๋ณ€์ˆ˜ ์ •์˜ 


int main(void){
~

๐Ÿงธ ๋ฌธ์ž์—ด (string) : char์˜ ๋ฐฐ์—ด๊ณผ ๊ฐ™๋‹ค

string = char(๋ฌธ์ž) ์ž๋ฃŒํ˜• ๋ฐ์ดํ„ฐ์˜ ๋ฐฐ์—ด

๋ฌธ์ž์—ด์€ ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ๋‹ค. ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๊ฐ’์„ ํ†ตํ•ด ๊ฐ char์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค ex. s[0] = c; ๋„์ข…๋‹จ๋ฌธ์ž\0๋Š” ๋ฌธ์ž์—ด์˜ ๋์„ ์•Œ๋ฆฐ๋‹ค. ๋„์ข…๋‹จ๋ฌธ์ž๋„ 1byte๋ฅผ ์ฐจ์ง€ํ•˜๋ฉฐ, ๋”ฐ๋ผ์„œ ๊ธธ์ด๊ฐ€ 4์ธ ๋ฌธ์ž์—ด์€ ์‚ฌ์‹ค 4byte๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค.

๐Ÿงธ ๋ช…๋ นํ–‰ ์ธ์ž (Command-line Argument)

C์–ธ์–ด์—์„œ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ ๋ฐ›๋Š” ์ž…๋ ฅ๊ฐ’์€ string์œผ๋กœ argv(argument vector)๋ผ๋Š” ๋ฐฐ์—ด์— ์ €์žฅ๋œ๋‹ค. argv[0]์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 'ํ”„๋กœ๊ทธ๋žจ์˜ ์ด๋ฆ„'์ด ์ €์žฅ๋œ๋‹ค. argc(argument count)๋Š” mainํ•จ์ˆ˜๊ฐ€ ๋ฐ›๊ฐœ๋  ์ž…๋ ฅ์˜ ๊ฐœ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋Š”๋ฐ, mainํ•จ์ˆ˜๋Š” argc์™€ argv๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›๊ธฐ๋„ํ•œ๋‹ค.

#include <cs50.h>
#include <stdio.h>

int main(int argc, string argv[])
{
    if (argc == 2)
    {
        printf("hello, %s\n", argv[1]);
    }
    else
    {
        printf("hello, world\n");
    }
}

๋งŒ์•ฝ ์œ„ ํ”„๋กœ๊ทธ๋žจ์˜ ์ด๋ฆ„์ด argc์ด๊ณ , ๋ช…๋ น์ฐฝ์— "./argc"๋ผ๊ณ  ์ž…๋ ฅํ•œ๋‹ค๋ฉด argc๊ฐ€ 1์ด๊ธฐ ๋•Œ๋ฌธ์— "hello, world"๋ฅผ ์ถœ๋ ฅํ•  ๊ฒƒ ์ด๋‹ค. ๋งŒ์•ฝ ๋ช…๋ น์ฐฝ์— "./argc mike"๋ผ ์ž…๋ ฅํ•œ๋‹ค๋ฉด, "hello, mike"๋ฅผ ์ถœ๋ ฅํ•  ๊ฒƒ์ด๋‹ค.

profile
i๐ŸŽS ๊ฐœ๋ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€