Visual Studio
-
C언어 고급포인터Visual Studio/C 기초 2012. 9. 13. 20:44
포인터에 대해 자세히 알아보겠습니다. 포인터 자체는 숫자 변수이므로 컴퓨터 메모리 내의 특정 주소에 저장되는데, 포인터에 대한 포인터 즉, 포인터 변수의 값이 다른포인터의 주소인 변수를 생성할 수도 있습니다. int x = 10; int *ptr = &x; int **ptr_ptr = &ptr; 포인터의 포인터를 선언할 때는 간접 연산자를 두 번 붙여주면 됩니다. 또한 포인터의 포인터가 가리키는 변수를 참조할 때도 간접 연산자를 두 번 사용합니다. **ptr_ptr = 12; // 변수 x에 10의 값을 할당합니다. 여기서 실수로 간접 연산자를 한 번 사용하면 에러가 납니다. *ptr_ptr = 10; // ptr_ptr이 가리키는 ptr의 값이 10을 할당합니다. ptr엔 10이란 값이 저장되어 어떤 ..
-
C언어 switchVisual Studio/C 기초 2012. 9. 10. 00:23
if문 같은 제어문은 2개의 값인 참, 또는 거짓으로만 평가되었지만 switch문은 여러 조건에 근거하여 프로그램의 흐름을 제어합니다. C언어에서 제공되는 가장 융통성있는 프로그램 제어문은 switch문이라 할 수 있겠습니다. if문으로 여러 조건으로 제어하려면 if문을 중첩시켜야 하죠. 번거롭기 때문에 switch문이 있는겁니다. 사용 예를 바로 들어보겠습니다. #include main(){ int rep; puts("1과 5사이의 숫자 중 하나를 입력하세요 : "); scanf("%d", &rep); switch(rep) { case 0: break; case 1: { puts("1을 입력하셨군요.\n"); break; } case 2: { puts("2을 입력하셨군요.\n"); break; } ca..
-
C언어 반복문제어 (break, continue, goto)Visual Studio/C 기초 2012. 9. 8. 17:20
break 반복문인 while, do-while, for문에 대해 배웠죠? 필요에 따라선 제어할 필요가 있습니다. break, continue 문을 사용하면 됩니다. for(count = 0; count 10) goto start; //start로 갑니다. else if(n==0) goto location0; //location0으로 갑니다. else if(n==1) goto location1; //location1로 갑니다. else goto location2; //locaiont2로 갑니다. location0: puts("당신은 0을 입력하였습니다.\n"); goto end; location1: puts("당신은 1을 입력하였습니다.\n"); goto end; location2: puts("당신은 2..
-
C언어 변수의 범위Visual Studio/C 기초 2012. 9. 7. 16:55
이번에 알려드릴 내용은 변수, 즉 우리가 생성하는 int형 float형 long형 등등 많이 쓰이는 내용입니다. C언어든 다른 컴파일러든 가장 기본적이며 가장 중요하기 때문에 아주 자세하게 알려드릴테니 많은 정보 얻어가시길 바랍니다. 차례대로 외부 변수, 지역 변수, 정적 변수, 자동 변수, 매개 변수, 정적 외부 변수, 레지스터 변수에 대해 알아보겠습니다. 변수의 범위는 프로그램에서 변수를 사용할 수 있는 범위를 뜻합니다. C에서 변수에 대해 설명할 땐 변수의 값을 사용할 수 있는 접근성과 주어진 범위 내에서 효과를 나타내는 가시성을 함께 사용합니다. 간단한 예를 들어보겠습니다. #include int x = 1000; void print_value(void); main(void){ printf("%d..
-
C언어 구조체 멤버로 사용되는 포인터Visual Studio/C 기초 2012. 9. 7. 11:25
포인터가 C에서 아주 중요하다는 사실을 아신다면 구조체와 함께 사용이 가능하다는 사실도 아실겁니다 :) struct data { int *value; int *rate; } first; 이 문장은 int형에 대한 2개의 포인터를 멤버로 가지는 구조체를 정의하고 선언합니다. 다른 모든 포인터에서와 마찬가지로 포인터를 선언하는 것만으로 사용할 수는 없습니다. 포인터에는 변수의 주소를 할당하여 포인터가 어떤 영역을 지정하도록 초기화 해야 합니다. 그럴 땐 마침표 (.)를 이용하면 됩니다. first.value = &cost; //first.value 는 cost에 저장된 값을 뜻하게 됩니다. 또한 메모리를 효율적으로 사용하기 위해 char형에 대한 포인터를 선언하고 문자열을 가리키도록 초기화 시킬 수 있습니다..
-
C언어 구조체와 배열Visual Studio/C 기초 2012. 9. 6. 16:19
구조체안에 배열을 삽입하는 방법입니다. (우엑) 구조체와 배열을 사용하는 프로그램은 음.. 전화번호부를 관리하는 프로그램에서 사람의 이름과 전화번호를 저장하기 위해 구조체를 정의할 수 있습니다. struct adress{ char fname[10]; char lname[12]; char phone[8]; }; struct adress list[100]; 이 문장은 100개의 요소를 가지는 list라는 이름의 배열을 선언하는데, 모든 요소는 adress형 구조체 변수이고 각 요소는 일반적인 배열 요소와 마찬가지로 첨자에 의해서 구분됩니다. list 배열 한 칸당 fname[10], lname[12], phone[8] 배열이 들어있다고 보시면 됩니다. 예제를 보겠습니다. #include struct adre..
-
C언어 구조체의 기본Visual Studio/C 기초 2012. 9. 6. 00:18
구조체 하니까 위엄이 느껴지지 않습니까? 매우 중요합니다. 이 글을 읽고 많은 내용 알아가셨으면 좋겠습니다. 구조체의 정의와 선언 구조체는 여러 개의 변수를 쉽게 사용할 수 있도록 하나의 이름으로 묶은 하나 이상 변수들의 집합입니다. 구조체의 장점은 여러가지 데이터 형을 포함할 수 있습니다. struct cordin { int x; int y; } 이 것이 구조체 기본 구조입니다. struct cordin { int x; int y; } 1st, 2nd; 이 문장은 구조체 cordin을 정의하고 cordin형 변수인 1st와 2nd라는 이름의 두 구조체를 선언합니다. 1st와 2nd는 구조체형 변수입니다. struct cordin 1st, 2nd; 라고 정의할 수도 있습니다. 구조체 멤버를 사용하는 방법..
-
C언어 문자와 문자열, 문자열과 포인터, malloc()Visual Studio/C 기초 2012. 9. 5. 15:23
문자 C는 문자값을 저장하기 위해서 char형을 사용합니다. 문자를 직접 저장하는 방법이 없기 때문에 각각의 문자 코드에 대응하는 숫자 코드가 존재합니다. 이런 숫자 코드를 ASCII (American Standard Code for Information Interchange) 코드 또는 ASCII 문자라고 합니다. 저는 아스키 코드라고 읽습니다. ㅎㅎ 이해하기 쉽게 바로 예제로 알려드리겠습니다. Tip. 정수형 표현은 %d, 소수형 표현은 %f죠? 문자형 표현은 %c 입니다. #include main(void){ char c1 = 'a'; char c2 = 90; printf("c1에 입력된 문자는? : %c\n", c1); printf("c1의 ASCII 문자 숫자 번호는? : %d\n\n",c1);..