C指针

1,int (*array_p)[3] array_p是指向int数组(元素个数3)的指针
2,
int array[3];
int (*array_p)[3];
array_p=&array//数组添加&,取得“指向数组的指针”
3,
int array[5];
int *p;
3.1
for(p = &array[0];p!=&array[5];p++){printf("%d\n",*p);}
3.2
for(int i = 0; i<5 ; i++){printf("%d\n",*(p+i));}
4
char *color_name[]={"red","green","blue"};
char color_name[][6]={"red","green","blue"};
5,
int func(double d);
int (*func_p)(double); //声明
func_p=func;//将func赋给func_p
func_p(0.5);//此时,func_p等同于func
6,
//只有在声明函数形参的情况下,int a[] 和 int *a 才具有相同的意义。
void func(int a[]){}可以被自动解读为void func(int *a){}
在下面声明的形参,都具有相同的意义。
int func(int *a);  /* 写法1 */
int func(int a[]);  /* 写法2 */
int func(int a[10]); /* 写法3 */
7,void func(int a[][5])
a 的类型为“int 的数组(元素个数 5)的数组(元素个数不明)”,因此它可以解读成“指向 int 数组(元素个数 5)的指针
void func(int (*a)[5])
pk一下4和7
8,
int *f(); //f:返回指向int指针的函数
int (*pf)(); //pf:指向返回int的函数的指针
*是前置运算符,优先级低于()
int *hoge[10];    hoge 是指向 int 的指针的数组(元素个数 10)
double (*hoge)[3];     hoge 是指向 double 的数组(元素个数3)的指针
int func(int a);     func 是返回 int 的函数(参数是 int a)
int (*func_p)(int a)     func_p 是指向返回 int 的函数(参数为 int a)的指针
int hoge;     hoge 是 int
int *hoge;     hoge 是指向 int 的指针
9,
int (*func_table[10])(int a) 可以解释成“指向返回 int 的函数(参数为 int a)的指针的数组(元素个数 10)”
10,
在ANSI C的标准库中,有一个atexit()函数。如果使用这个函数,当程序正常结束的时候,可以回调一个指定的函数
    int atexit(void (*func)(void));
英语的表达为:
    atexit is function(func is pointer to function (void) returning) returning
    atexit 是返回 int 的函数(参数是,指向返回 void 没有参数的函数的指针)
11,
signal()是用于注册信号处理(当中断发生时被调用的函数)的函数。此函数的返回值是之前注册的处理当前信号中断的函数。
也就是说,其中的一个参数和返回值,它们都是相同的类型——指向信号处理函数的指针。在一般的语言中,同样的表现模式出现两次并不会让你感到不适,但是解释 C 语言声明的过程是“一会儿向左一会儿向右”,因此,表示返回值的部分散落了在左右两侧。
void (*signal( int sig , void(*func)(int)) )(int);
英语的表达为:
signal is function(sig is int, func is pointer to function(int) returning void) returning pointer to function(int) returning void
翻译成中文……
signal 是返回“指向返回 void,参数为 int 的函数的指针”的函数,它有两个参数, 一个是 int,另一个是“指向返回 void 参数为 int 的函数的指针”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值