๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
[C programming] ๋ด๊ฐ ๊ถ๊ธํด์ ์ ๋ฆฌํ ํฌ์ธํธ ๋ฐฐ์ด char ์ฐจ์ด & ํฌ์ธํธ ๋ฐฐ์ด ํฌ๊ธฐ ๋ณธ๋ฌธ
[C programming] ๋ด๊ฐ ๊ถ๊ธํด์ ์ ๋ฆฌํ ํฌ์ธํธ ๋ฐฐ์ด char ์ฐจ์ด & ํฌ์ธํธ ๋ฐฐ์ด ํฌ๊ธฐ
์ง์ง์ํ์นด 2023. 8. 22. 11:51<๋ณธ ๋ธ๋ก๊ทธ๋ ์ตํธ์ฑ ๋์ ์ดํ๊ฐ์ C ํ๋ก๊ทธ๋๋ฐ ์์ ์ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>
๐ char [], char * ์ ์ฐจ์ด์
// <stdio.h> : ํต์ฌ ์
๋ ฅ๊ณผ ์ถ๋ ฅ ํจ์๋ค์ ์ ์
#include <stdio.h>
// #4. ๋จ์ ๋์
์ฐ์ฐ์
int main(void)
{
// ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ์ ์ฅ (๋ณ์ ์ฑํฅ์ ๋ฌธ์์ด, ๊ฐ ๋ณํ ๊ฐ๋ฅ)
char *szName[3];
szName[0] = "HelloWorld";
szName[1] = "C Programming";
szName[2] = "Studying";
for (int i = 0; i < 3; i++)
{
printf("szName[%d] -> %s\n", i, szName[i]);
printf("szName[%d] -> %d\n", i, &szName[i]);
}
// charํ ๋ฐฐ์ด์ ๊ฐ๊ฐ์ ๋ฌธ์๊ฐ ๊ทธ๋๋ก ์ ์ฅ (์์ ์ฑํฅ์ ๋ฌธ์์ด, ๊ฐ ๋ณํ ๋ถ๊ฐ๋ฅ)
char szName2[3];
printf("szName2 -> %s\n", szName2);
printf("szName2 -> %d\n", &szName2);
char szName3[3];
szName3[0] = 'a';
szName3[1] = 'b';
szName3[2] = NULL;
printf("%s", szName3);
printf("%c", szName3[1]);
return 0;
}
char [] : ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ์ ์ฅ (๋ณ์ ์ฑํฅ์ ๋ฌธ์์ด, ๊ฐ ๋ณํ ๊ฐ๋ฅ)
char * : charํ ๋ฐฐ์ด์ ๊ฐ๊ฐ์ ๋ฌธ์๊ฐ ๊ทธ๋๋ก ์ ์ฅ (์์ ์ฑํฅ์ ๋ฌธ์์ด, ๊ฐ ๋ณํ ๋ถ๊ฐ๋ฅ)
*ํฌ์ธํฐ(szName)๋ฅผ ๋ฃ์ด์ผ ๊ฐ์ด ์ถ๊ฐ(?) ๋๋ค
*ํฌ์ธํฐ๋ฅผ ๋ฃ์ง ์์ szName2๋ฅผ ์ด๊ธฐํ ์ํ๋๋ ์ฐ๋ ๊ธฐ ๊ฐ์ด ๋์จ๋ค
ํฌ์ธํฐ ๋ณ์์ ํฌ๊ธฐ๋ฅผ x64, x82 ๋ณ๋ก ์ปดํ์ผ ํด๋ณด์๋ค
๐ ํฌ์ธํฐ ๋ณ์์ ํฌ๊ธฐ
โ ์ด์์ฒด์ ์ bit์ ๊ฐ ํฌ์ธํฐ ๋ณ์์ ํฌ๊ธฐ์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค (ํ์์ ์ด์์ฒด์ ๋ 64bit window 10)
โ ํฌ์ธํฐ ๋ณ์์ ํฌ๊ธฐ(double *,char *, int*)์ ํฌ๊ธฐ๋ ์๋ฃํ์ ์๊ด์์ด ๋์ผํ๋ค
โ ์ปดํ์ผ๋ฌ์ ์ํฉ์ ๋ฐ๋ผ ํฌ์ธํฐ ๋ณ์์ ํฌ๊ธฐ๊ฐ ๋ค๋ฅด๋ค
32bit ๋ก ์ปดํ์ผ ์ ํฌ์ธํฐ๋ณ์์ ํฌ๊ธฐ๊ฐ 4๋ฐ์ดํธ๋ก ๋ํ๋๋ค
64bit ๋ก ์ปดํ์ผ ์ ํฌ์ธํฐ๋ณ์์ ํฌ๊ธฐ๊ฐ 8๋ฐ์ดํธ๋ก ๋ํ๋๋ค
32bit๋ 2 ^ 32 = 4,294,967,295 ์ ํํ์ด ๊ฐ๋ฅ
32bit์ ์ฃผ์๋ฅผ ์ ์ฅํ๊ธฐ ์ ํฉํ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ ๊ทธ๋ผ ์ผ๋ง์ผ๊น?
(8bit = 1byte) 32bit๋ 4byte
BUT 1byte๋ก๋ 32bit ์ด์์ฒด์ ์ ์ฃผ์๋ฅผ ๋ด๊ธฐ์๋ ๋ถ์กฑํ ํฌ๊ธฐ
32bit์ ์ฃผ์๋ฅผ ์ ์ฅํ๊ณ ์ฌ์ฉํ ์ ์๋ ํฌ๊ธฐ์ธ 4byte์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ์
64bit๋ 2 ^ 64 = 18,446,744,073,709,551,616 ์ ํํ์ด ๊ฐ๋ฅ
64bit์ ์ฃผ์๋ฅผ ์ ์ฅํ๊ธฐ ์ ํฉํ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ ๊ทธ๋ผ ์ผ๋ง์ผ๊น?
(8bit = 1byte) 64bit๋ 8byte
64bit์ ์ฃผ์๋ฅผ ์ ์ฅํ๊ณ ์ฌ์ฉํ ์ ์๋ ํฌ๊ธฐ์ธ 4byte์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ์
x86(32๋นํธ) ์ด์์ฒด์ ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ์ ํฌ๊ธฐ๊ฐ 32๋นํธ ์ฆ 4๋ฐ์ดํธ
x64(64๋นํธ) ์ด์์ฒด์ ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ์ ํฌ๊ธฐ๊ฐ 64๋นํธ ์ฆ 8๋ฐ์ดํธ
'๐ฉโ๐ป IoT (Embedded) > C์ธ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C programming] ๋ฌธ์ & ๋ฌธ์์ด ์ ์ถ๋ ฅ ํจ์ (0) | 2023.08.22 |
---|---|
[C programming] ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ๊ธฐ๋ณธ ์ด๋ก (0) | 2023.08.22 |
[C programming] ํฌ์ธํฐ & ๋ณ์ & ์ฃผ์ (0) | 2023.08.21 |
[C programming] ์์์ ์๋ฃํ (0) | 2023.08.21 |
[C programming] Hello, world! (0) | 2023.08.21 |