2009. 10. 11. 23:11 devel/개념
연산자 우선순위 + 보너스 더블포인터를 사용해야만 하는 경우
순위 |
연산자 |
결합순서 |
1 |
( ) [ ] -> . |
왼쪽 우선 |
2 |
! ~ ++ -- + -(부호) *(포인터) & sizeof 캐스트 |
오른쪽 우선 |
3 |
*(곱셈) / % |
왼쪽 우선 |
4 |
+ -(덧셈, 뺄셈) |
왼쪽 우선 |
5 |
<< >> |
왼쪽 우선 |
6 |
< <= > >= |
왼쪽 우선 |
7 |
== != |
왼쪽 우선 |
8 |
& |
왼쪽 우선 |
9 |
^ |
왼쪽 우선 |
10 |
| |
왼쪽 우선 |
11 |
&& |
왼쪽 우선 |
12 |
|| |
왼쪽 우선 |
13 |
? : |
오른쪽 우선 |
14 |
= 복합대입 |
오른쪽 우선 |
15 |
, |
왼쪽 우선 |
아우 짱나게 자꾸 헷갈리는 부분이 있다
더블 포인터를 사용해야하는 경우
함수 밖에서 pointer 형 변수를 함수로 넘긴다음에
그 변수의 내용을 고쳐서 함수 밖에서 다시 써야할 경우
~_~
예시
1 #include <stdio.h>
2 #include <string.h>
3
4
5 void r(const char*,char*,int*);
6 int main(int argc, char* argv[]){
7
8 char* tmp = "203.249.75.13 10321";
9 char* ip;
10 int pt;
11
12 r(tmp,ip,&pt);
13
14
15 printf("%s, %d\n",ip, pt);
16 return 0;}
17
18
19
20 void r(const char* data, char* ip, int* pt){
21
22 int i;
23 for(i=0; data[i] != 0 ; i++){
24 if(data[i] == ' ') {
25 ip = (char*) malloc(sizeof(char)*(i+1));
26 strncpy(ip,data,i);
27 ip[i] = 0;
28
29 *pt = atoi(&(data[i+1]));
30 break;
31 }
32 }
33
34 printf("%s, %d\n",ip, pt);
35
36 }
~
'devel > 개념' 카테고리의 다른 글
헤더파일 전역변수 중복 오류 (0) | 2016.04.21 |
---|---|
EAS(Energy-Aware Scheduler) 스케쥴러 정리 (0) | 2016.03.24 |
para virtualization vs full virtualization (0) | 2013.08.21 |
HTTP - Stateless Protocol (0) | 2011.08.10 |
TCP vs UDP (0) | 2011.05.04 |