c언어

C프로그래밍/개인 공부

C언어 - 구조체안에 문자배열? or 문자형을 가르키는 포인터?

1 2 3 struct{ char name[20]; }; cs 이렇게 하면 구조체 내부의 문자배열 name[20]에 문자열이 저장된다. 즉, 20바이트의 저장공간이 구조체 내부에 할당된다. 1 2 3 struct{ char *name; }; cs 이렇게 문자형을 가르키는 포인터를 선언하면, 문자열은 문자열 상수들이 모여있는 공간에 저장된다. 구조체 내부에는 포인터 name을 위한 1바이트만 할당되게 된다. 즉, 문자열을 위한 공간이 구조체 내부에는 없다. 문자열을 저장할 수 없다. 어딘가에 문자열이 이미 저장되어있을 경우에만 가르키면서 사용할 수 있다. 1 2 3 4 5 struct student{ char *name; }; struct student s; scanf("%s", s.name); cs 따라..

C프로그래밍/개인 공부

C언어 - 구조체와 포인터

구조체를 가르키는 포인터 지금까지는 포인터로 변수만을 가르켰다. 포인터는 구조체도 가르킬 수 있다. 구조체 포인터는 다음과 같이 만든다. 1 2 3 4 struct student s = {"2291048", "jin", "4.3"}; struct student *p; p = &s; Colored by Color Scripter cs 구조체 변수 s를 생성하고, student구조체를 가르킬 포인터 p를 만든다. 그리고 포인터 p에 구조체 변수 s의 주소를 넣어준다. 그리고 포인터 p가 가르키는 구조체의 멤버로 접근하려면 1 (*p).number cs 이렇게 '포인터가 가르키는 것'의 멤버 number 혹은 1 p->number cs 간단하게 이렇게 표현해도 된다. 그러면 멤버로 접근하는 간단한 예제를 보자..

C프로그래밍/개인 공부

C언어 - 문자열을 정수로, 정수를 문자열로 바꾸기

프로그래밍을 하다보면 문자열을 정수/실수로 바꾸거나 정수/실수를 문자열로 바꿔야하는 경우가 존재한다. atoi, atof 함수사용, sscanf, sprintf 함수를 사용하는 방법이 있다. sscanf, sprintf사용 1)sscanf() : 문자열로부터 읽어서 지정된 형식에 따라 변수에 저장한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 #include int main(void) { char s1[] = "100 200 300"; char s2[20]; int value; sscanf(s1, "%d", &value); //s1에서 읽어서 %d형식으로 value에 저장 printf("%d", value); //value를 출력 return 0; } Colored by Color Scrip..

C프로그래밍/Programming Lab(학교수업)

피보나치 수열 재귀함수로 표현하기

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include int fibo(int num) { if (num

C프로그래밍/개인 공부

C언어 - 포인터의 기초

포인터 point에 er을 붙인 것이다. pointer을 직역하면 '가르키는 것'이 되는데, 변수의 주소를 가지고 있는 변수이다. 즉, int i = 4이렇게 변수에 데이터를 저장했다고 가정했을때, 포인터는 변수i가 저장되어있는 메모리상 주소를 가진다. 주소 연산자 & 그렇다면 변수의 주소를 어떻게 알 수 있을까? 주소 연산자인 &를 사용하면된다. 간단한 예제를 살펴 보자. 1 2 3 4 5 6 7 8 9 #include int main(void) { int a = 10; printf("%u", &a);//%u는 주소를 십진수로 출력 return 0; } cs 이 예제에선, 변수 a를 선언하고 10을 저장했다. 그렇다면 이 변수 a가 저장되어 있는 메모리상 주소가 있을 것이다. &는 주소 연산자로써 &a..

C프로그래밍/Programming Lab(학교수업)

솟수 구하기

소수 : 약수가 1과 자기 자신뿐인 수 예를 들어서, 5는 약수가 1과 5밖에 없기 때문에 소수이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include int isPrime(int n) // 솟수 검사 함수, 솟수이면 1 아니면 0을 return { for (int i = 2; i

Jminu
'c언어' 태그의 글 목록 (3 Page)