指针传参数的方法比较

来源:互联网 发布:淘宝广告怎么赚钱 编辑:程序博客网 时间:2024/06/06 09:54

先看这几个指针传参数的例子:

#include <stdio.h>#include <string.h>#include <stdlib.h>void fun(int *p)/*错误的指针传参的方法*/{int b = 100;p = &b;}void func(int *p){int b = 100;*p = b;}void change(char *p){int i;for(i = 0;i<15;i++){*(p+i) = 'a';}}void test_A(char **p){*p = (char *)malloc(10);int i;char *arr = malloc(10);for(i = 0;i<10;i++){sprintf(arr+i,"%d",i);}arr[10]='\0';*p = arr;}void test_B(char *p)/*错误的指针传参的方法*/{p = (char *)malloc(15);int i;char *arr = malloc(15);for(i = 0;i<14;i++){arr[i]='b';}arr[15]='\0';p = arr;printf("在函数里面:%s\n",p);}int main(){int a = 10;int *q;q = &a;printf("%d\n",*q);fun(q);printf("%d\n",*q);func(q);printf("%d\n",*q);char arr[] = "ahsjdsahjdkhsaj";char *temp =arr;change(temp);printf("%s\n",temp);char *testString = NULL;test_A(&testString);printf("%s\n",testString);char *test = NULL;test_B(test);printf("%s\n",test);return 0;}


原创粉丝点击