1.定义
,数组名就是地址,类似函数名=地址
2.如何定义一个函数指--跟普通变量一样
ag:
int a;
int *p;
char b;
char *p;
int GetData(int a,int b);
int (*p)(int a,int b); //(正确写法) int(*p)[4]; []优先级高于*所以用括号括起来表示他是指针变量
int* p(int a,int b); //指针函数,p是一个函数,这个函数返回指针,返回结果是一个地址
3.使用函数指针--函数调用概念和变量一样
1.直接访问:变量名(函数名)
2.间接访问:指针(函数指针)
定义一个指针函数,函数指针也讲究类型,要定义一个函数指针指向一个函数他的函数原型要长得一样
补充:
#include <stdio.h>
char string [] = "Hello world!";
puts (string); // 输出字符串
#include <stdio.h>
char c;
for (c = 'A' ; c <= 'Z' ; c++) {
putchar (c); // // 输出单个字符
}
putch(); 非标准函数 putchar (c); 建议别用它
puts 是显示 字符串
putch 不是标准函数
putchar 是写入字符
getchar 是读入字符
补充:三目运算符
三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。
对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。
int main()
{
int a=3,b=3,c=1,k=4;
// printf("%d\n",k>a?2: c<b?(--k):++k); //2 k>a?2: (c<b?(--k):++k)
// printf("%d\n",k); //4
printf("%d\n",k<=a?2: c<b?(--k):++k); //3
printf("%d\n",k); //3
}