- #include <stdio.h>
- void ptr(int input,int *num_ptr)
- {
- if(input == 2)
- {
- ++*num_ptr;
- printf("Haha\n");
- }
- else if(input == 3)
- {
- --*num_ptr;
- printf("Haha!Hello!\n");
- }
- }
- int main(void)
- {
- int input;
- int num = 0;
- scanf("%d",&input);
-
- ptr(input,&num);
- printf("num = %d\n",num);
- return 0;
- }
- G:\C_C++\ABookOnC\ptrverify>gcc -o ptrverify -Wall ptrverify.c
- G:\C_C++\ABookOnC\ptrverify>ptrverify.exe
- 2
- Haha
- num = 1
- G:\C_C++\ABookOnC\ptrverify>ptrverify.exe
- 3
- Haha!Hello!
- num = -1
- G:\C_C++\ABookOnC\ptrverify>
在这里,通过ptr(input,&num);把num的的地址赋给num_ptr,而在++*num_ptr(等价于++(*num_ptr));这条语句执行完之后,就只把num的值加一,也就修改了变量num的值了,哈哈!
真是一个好的方法啊!