C语言编程(二)---1.关于指针,指针作为函数形参,实参;2.指针和数组的关系,相互赋值;3.memset用于结构体

C语言编程(二)---1.关于指针,指针作为函数形参,实参;2.指针和数组的关系,相互赋值;3.memset用于结构体
1. 提到C语言的指针,让人有些惧怕,用不好经常会异常或者出现程序崩溃;但是在函数传值中用的相当多。 简单的总结一下经验。 指针做函数形参 void * func(void * pIn, void * pOut) { //形参中的入参最好不要直接使用,可以采用如下方式。 int * pInData = NULL; int *pOutData = NULL; pInData = pIn; pOutData = pOut; //可以有实际的数 } 实参一 int a; int b; char *p; p = (char *)func(&a, &b); 实参二 数组作为入参 int a[10]; int b[10]; int *p; p = (int*)func(a,b); p = (int *)func(&a[0], &b[0]); 实参三 指针作为入参? int *a; int *b; int *p; p = (int *)func(a,b); 还有啥? 额 应该没有了? 自己写程序试试! 2. 指针和数组相互赋值; 实例一 int a[10]= {0,1,2,3,4,5,6,7,8,9}; int *p; int iLoop = 0; for(iLoop = 0; iLoop < 10; iLoop++) { *p = a[iLoop]; p++; } 临时想到的。。。。 告诉你,我很不喜欢函数有返回值; 不喜欢函数返回值做判断; 不知道函数返回值该怎么利用 ; 1. 时常忘记入参是指针式要做非空判断; 2. 函数返回值也要做判断吗?????额 好像不要,直接把函数返回值拿过来用呀。 3. 函数参数,查询到的结果是空时要做非空判断 比如下 fun(pIn, pOut); if(FALSEE == pOUt.bResult) { return FALSE; } 实例二 void *func(int *pIn, int *pOut) { }

你可能感兴趣的:(C语言编程(二)---1.关于指针,指针作为函数形参,实参;2.指针和数组的关系,相互赋值;3.memset用于结构体)