일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 역순
- Spring email
- 날짜
- 포인터
- 텍스트 파일 읽기
- placehoder
- GUI
- URL 다운로드
- C언어
- 오라클
- C언어 함수
- Oracle
- java
- C언어 배열
- HTML5
- gcc
- Google reCaptcha
- C언어 변수
- Naver SmartEditor
- 구글 reCaptcha
- Vim
- jsp
- C언어 메모리
- Spring google
- C언어 매크로
- C언어 구조체
- SQL
- TCP/IP 소켓
- C언어 파일입출력
- 자바
- Today
- Total
목록C언어 (64)
easy software
예제를 하나 해보면서 포인터와 const의 또 한가지 특징을 말씀 드리겠습니다. #include void print(const int* ptr){ printf("%d \n", *ptr); int *p = ptr; *p = 20; } int main(void){ int a = 10; int *p = &a; print(p); return 0; } 위의 코드를 보면 문제점이 있어 보이나요? 아니면 없어 보이나요? 위의 코드에는 분명히 문제점이 있습니다. print함수 내의 int *p = ptr; 이라는 코드가 바로 문제의 코드입니다. 왜 이 코드가 문제코드인지 설명해 드리겠습니다. print함수는 인자를 ptr로 받고 있습니다. ptr은 상수인데 print내에서 선언한 p는 상수가 아닙니다. 그런데 p에 p..
안녕하세요. 이번 시간에는 포인터와 const 키워드에 대해 알아보고자 합니다. 앞서 공부한 내용보다는 무척 쉬운 것이지만 상당히 중요한 프로그래밍 습관을 길들일 수 있는 것이니, 주의깊게 살펴보시기 바랍니다. const란 무엇일까요? const키워드는 변수를 상수화 시켜주는 것을 의미합니다. 즉, 값을 변경하지 못하도록 막는역할을 하는 것이죠. 3,14라는 파이값은 불변의 수죠? 이런 파이값을 코드로 작성할 때 const키워드를 사용하는 것입니다. 만약, 프로그래머가 파이값을 상수로 정의하지 않고 코드를 작성하다가 실수로 중간에 파이값을 바꾸는 코드를 작성해버리면 어떻게 될까요? 컴파일할때는 전혀 문제가 되지 않았지만, 출력물은 엉망이 되어있을 수 있습니다. 짧은 코드를 가진 프로그램이면 그나마 괜찮은..
이번 예제는 Call-By-Reference를 이용하여, 변수의 자리를 바꾸는 프로그램을 구현하겠습니다. main이 아닌 별도의 함수를 두고 해야 하는 작업입니다. 초기값은 a = 10, b = 20, c = 30 이고, 프로그램이 원하는 최종 출력값은 a = 30, b = 10, c = 20 입니다. 코드의 주석을 잘 보시고 이해해보시기 바랍니다. #include //a에는 c의 값, b에는 a의 값, c에는 b의값. //즉, 서로 삼각형 모양의 형태로 값을 변경하는 함수 void swap(int* a, int* b, int* c){ //포인터 변수로 주소를 전달받음 int temp = *a; //임시변수에 *a가 가리키는 값 저장 *a = *c; //*a가 가리키는 값을 *c가 가리키는 값으로 변경 ..
저번시간에 공부했던 Call-By-Value / Reference 를 이용하여 간단한 예제를 해보도록 하겠습니다. 주석을 확인하시면, 간단하게 이해할 수 있는 문제들입니다. 1. 사용자로부터 정수를 하나 입력받는다. 2. main아닌 함수를 구현해서 값을 전달받아 제곱을 해준다 3. Call-By-Value / Reference 두 가지 형식으로 각각 작성한다. Call-By-Value 형식 #include int Square(int n){ //주소가 아닌 값을 복사하여 변수 n에 저장함 return n * n; //제곱하여 반환 } int main(void){ int a; printf("Call-By-Value - 정수를 입력하세요 : "); scanf_s("%d", &a); a = Square(a);..
안녕하세요. 오늘 전해드릴 내용은 중요한 개념중의 하나인 Call-By-Value / Reference 입니다. 용어가 중요한게 아닌, 개념이 중요하니 잘 이해해보세요. 생각보다 상당히 쉬운 내용입니다. Call-By-Value 란? 값에 의한 호출이라고 정의할 수 있습니다. 예제를 통해 설명드리겠습니다. int main(void){ int val1 = 10; int val2 = 20; swap(val1, val2); printf("val1 : %d \n", val1); printf("val2 : %d \n", val2); return 0; } void swap(int a, int b){ int temp = a; a = b; b = temp; printf("a : %d \n", a); printf("b ..