指针
来源:互联网 发布:防sql注入最佳 编辑:程序博客网 时间:2024/06/05 00:38
- 从0到1,回归基础,夯实基础 ,点滴积累,成就未来
#include <stdio.h>#include <stdlib.h>int main1()//定义函数的指针变量{ void fun(int x, int y, int(*p)(int, int)); int max2(int , int ); int min2(int , int ); int add2(int, int); int a = 21, b = -9, n; printf("choose 1,2 or 3:\n"); scanf_s("%d", &n); if (n == 1) fun(a, b, max2); else if (n == 2) fun(a, b, min2); else if (n == 3) fun(a, b, add2);}void fun(int x, int y, int(*p)(int, int)){ int result; result = (*p)(x, y); printf("%d\n", result);}int max2(int x, int y){ return x > y ? x : y;}int min2(int x, int y){ return x < y ? x : y;}int add2(int x, int y){ return (x + y);}//函数返回指针int main2(){ float score[][4] = { { 60, 70, 80, 90 }, { 56, 89, 67, 88 }, { 34, 78, 90, 66 } }; float *search(float(* pointer)[4], int n); float *p; int i, k; printf("enter the number of stdudent:\n"); scanf_s("%d", &k); p = search(score, k);//返回score[k][0]的地址 for (i = 0; i < 4; i++) printf("%5.2f\t", *(p + i));//输出score[k][0]-score[k][3] printf("\n");}float *search(float(*pointer)[4], int n)//返回score[k][0]的地址{ float *pt; pt = *(pointer + n);//&score[k][0] return pt;}int main3(){ float score[][4] = { { 60, 70, 80, 90 }, { 56, 89, 67, 88 }, { 34, 78, 90, 66 } }; float *search_score(float(*pointer)[4]); float *p; int i, j; for (int i = 0; i < 3; i++) { p = search_score(score + i);//调用search函数,如果不及格返回score[i][0]的地址,否则返回NULL if (p == *(score+i))//如果返回的是score[i][0]的地址,表示p的值不是NULL; { printf("No.%d socre;", i); for (int j = 0; j < 4; j++) { printf("%5.2f ", *(p + j));//输出p[i][0]-p[i][j]; } printf("\n"); } }}float *search_score(float(*pointer)[4]){ int i = 0; float *pt; pt = NULL; for (; i < 4; i++) if (*(*pointer + i) < 60) pt = *pointer;//如果有不及格课程,使pt指向score[i][] return pt;}int main4()//指针数组{ void sort(char *name[], int n); void print(char *name[], int n); char *name[] = { "Follow me", "BASIC", "Great Wall", "FORTRAN", "Computer design" }; int n = 5; sort(name, n); print(name, n); system("pause"); return 0;}void sort(char *name[], int n){ char *temp ; temp = name[0]; int i, j, k; for (i = 0; i < n - 1; i++) { k = i; for (j = i+1; j < n; j++) //选择排序法,下面没有大括号!!!! if (strcmp(name[k], name[j])>0)//字符串比较用strcmp k = j; if (k != i) { temp = name[i]; name[i] = name[k]; name[k] = temp; } }}void print(char *name[], int n){ int i=0; char *p = name[0]; while (i<n) { p = *(name + i++); printf("%s\n", p); }}int main5()//多重指针{ char *name[] = { "Follow me", "BASIC", "Great Wall", "FORTRAN", "Computer design" }; char **p; int i; for (int i = 0; i < 5; i++) { p = name + i; printf("%s\n", *p); }}int main()//动态分配内存{ void checkp(int *p); int *p1, i; p1 = (int *)malloc(5 * sizeof(int)); for (i = 0; i < 5; i++) scanf_s("%d", p1 + i); checkp(p1); free(p1); system("pause"); return 0;}void checkp(int *p){ int i; for (i = 0; i < 5; i++) if (*(p+i) < 60) printf("%d ", *(p+i)); printf("\n");}
阅读全文
0 0
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- vue常见报错记录
- 1039. 到底买不买(20) Hash散列
- Expedition
- Date、Calender和SimpleDateFormat类
- 知识点:CSS实现一个图案
- 指针
- Flask-处理客户端通过POST方法传送的数据
- scrollView 宽高无效
- Myeclipse jax-ws框架实现简单的webservice服务器端与客户端
- AAA
- 带权并查集 then
- ZooKeeper(2)-基本介绍
- HDU 6105 Gameia(博弈+二分匹配)
- Aptana插件安装以及配置