C语言

您所在的位置:网站首页 c语言中实参和形参 C语言

C语言

2024-07-14 11:27| 来源: 网络整理| 查看: 265

一.知识点 1. 函数指针的定义

int (*p)();//p为指向函数的指针,该函数返回一个整型值

先确定函数返回值,再写两个括号. 例:

#include int sum(int a,int b); int main(void){ int (* pfun)(int ,int); pfun=sum;//将sum的入口地址赋给pfun; //下面的写法都是对的 printf("%d\n",sum(1,2)); printf("%d\n",pfun(1,2)); printf("%d\n",(*sum)(1,2)); printf("%d\n",(*pfun)(1,2)); return 0; } int sum(int a,int b){ return a+b; } int a[4][5]; int *(*p[5]) (void *,int **) = {fun, fun, fun, fun, fun};//数组里面每一个元素都是函数指针 int (*p[4])[5] = {a, a+1, a+2,a+3};//数组里面每一个元素都是行指针数组指针 int (*p)[5];//行指针 2.实参形参的传递

实参是一个变量p,传递值给形参,则函数内部无论怎么做 都不会改变实参p的值,只有传地址才可以改变值.

实参是一个指针变量p,传递给形参,则函数内部无论怎么做 都不会改变实参p的指向,但可以通过地址改变指向的内容. //1.实参是-一个1级指针的地址,形参就是** //2.当实参为指针数组时,形参也要用**

3. 回调函数

下层调用上层 int atexit(void (*function)(void));

void fun2(){ printf ("he1lo world\n") ; } int main (void){ atexit (fun2) ; printf ("1234567\n") ; return 0; } 结果 1234567 he1lo world 4. const const int a=10;//常量 char*p;//可以通过p去访问(读取,修改)内存 const char*p;//这个指针时只读指针,它可以指向有效地址,可以指来指去 char const*p;//无法通过这个指针去修改内存,可以读取 char *const p//常量指针,一般都需要初始化,指向后无法再向其他地方,但是可以通过 //这个指针变量去修改内存。 const char* const p;//只读常量指针,不能指来指去,也无法通过这个指针去修改内存 char const const p 5. **p的使用

int **p; //二级指针指向的1级指针是int *类型 (1)用于指向1级指针,是指针的指针

int a =10: int *q=&a; p=&q; //a==*q==**p //&a==q==*p

(2)p可以指向于对应的指针数组

int *b[10]; p=b;

错误用法:

int c[3][4]; int **p=c;

二维数组要行指针(数组指针—int (*p)[4])来指向 但是可以使用

int** p = (int**)malloc(sizeof(int*) * SIZE); for(int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3