안녕하세요 도미닉입니다. 콜 바이 벨류, 콜 바이 레퍼런스 많이 들어보셨을 겁니다. 스위프트에서 inout 을 활용하여 포인터에 직접 접근할 수 있습니다. 위에 소스는 inout 을 통해 직접 포인터에 접근하여 두 변수의 값을 바꾸는 예제입니다. 함수에서 서로 값이 바뀐다면 그 값은 복사되어 사용된 값이므로 원본에는 영향을 주지 않습니다. 스위프트에서는 함수에 매개변수로 들어온 값을 수정할 수 조차 없습니다. 위와 같이 inout 을 통해 매개변수에 접근한다면 조금 더 효율적인 프로그래밍이 가능합니다. 직접 포인터에 접근하는 것은 자유도가 있지만 예상치 못하게 원본에 대한 수정이나 훼손이 가능하므로 주의하여야 합니다. 조금 더 안전한 메소드는 아래와 같습니다. 이상으로 inout 에 대해서 알아봤습니다...
키보드로부터 임의의 숫자 세 개를 입력 받은 후에 큰 숫자부터 차례로 출력하는 프로그램을 작성합니다. 단, main 함수가 다음과 같이 작성되어 있을 때 line_up 함수를 정의하여 프로그램을 완성합니다. 필요하다면 exchange 함수도 작성하여 사용합시다. int main(){double max, mid, min; printf("숫자 세 개를 입력하세요 : ");scanf("%lf%lf%lf", &max, &mid, &min); line_up(&max, &mid, &min);printf("큰 수부터 차례로 출력하면 : %lf, %lf, %lf\n", max, mid, min);return 0; } 프로그램을 실행하면 다음과 같이 수행될 것입니다. 숫자 세 개를 입력하세요 : 3.4 0.45 6.07..
두 개의 double형 변수 a, b에 다음과 같이 값이 저장되어 있다고 합시다. dobule a = 1.3;double b = 1.7; 두 변수 a, b를 가리키는 포인터변수를 사용하여 두 변수의 값을 바꾸는 프로그램을 작성합니다(두 변수의 값을 바꾸는 방법은 연습문제 [9-2]의 ③번을 참고하세요). 프로그램을 실행하면 다음과 같이 수행될 것입니다. 바꾸기 전의 a, b의 값 : 1.3, 1.7바꾼 후의 a, b의 값 : 1.7, 1.3 - 소스 #include int main(){double a = 1.3;double b = 1.7;double temp; double *ap = &a;double *bp = &b; printf("바꾸기 전의 a, b의 값 : %.1lf, %.1lf\n", a, b);..
메트랩의 좋은 점 중 하나는 변수 선언이 필요없다는 점이다. (다른 언어의 경우 변수의 크기와 형태 등을 가장 위에 줄에서 선언을 해야 그 변수를 쓸 수 있다.) 메트랩에서는 그러한 좋은 점 대신에 for문 등을 돌릴 때 변수의 크기가 지속적으로 바뀌는 경우가 있다. 이러한 경우 노란색으로 밑줄이 뜨면서 경고 표시가 뜬다. 실질적인 에러는 아니라 프로그램은 정상 작동하지만 찜찜한 기분과 속도가 느려질것 같은 불안감이 드는 것이 사실이다. 이러한 경우에 zeros(열의 크기, 행의 크기) 를 통하여 쉽게 해결이 가능하다. 변수를 사용하기 전에 선언하는 것을 잊지말자~ 예 : speed = zeros(217,217); 이러한 식으로 선언을 하면 0으로 채워진 217X217 의 배열이 생성된다. 이상 끝~
- Total
- Today
- Yesterday
- 애플
- 프로그래밍
- 형용사
- 시원스쿨
- 왕초보 영단어1
- IOS
- exercise
- 배열
- 매트랩
- MySQL
- 테라스캔
- 영어
- 단어
- 함수
- 스위프트
- 반복문
- 뇌를 자극하는 C프로그래밍
- 연습문제
- C
- database
- 프로그램
- Xcode
- 뇌를 자극하는 C 프로그래밍
- terascan
- Apple
- Swift
- 포인터
- 데이터베이스
- 리눅스
- Matlab
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |