c语言指针汇总
2024-09-01 03:42:41
1.指向单个变量的指针;
int a = ;
int* p = &a;
printf("%d", *p);
2.数组的指针
(1)一维数组的指针
int a[] = { ,,,, };
int *p;
p = a;
printf("%d\n", a[]);
printf("%d\n", *(p + ));
printf("%d", p[]);
(2)二维数组的指针
(1)列指针
int a[][] = { ,,,,,,,,,,, };
int* p;
//p = &a[0][0];
//p = a[0];
p = *a;
printf("%d\n", *(p + * + )); //a[i][j] = *(p + i * n + j); //n数组的列数
printf("%d", a[][]);
(2)行指针 (指向数组的指针)
int a[][] = { ,,,,,,,,,,, };
int(*p)[];
p = a;
printf("%d\n", a[][]);
printf("%d", *(*(p + ) + ));
3.指向函数的指针
int main()
{
int func(int a);
int (*p)(int a);
int a = ;
p = func;
(*p)(a); //调用
return ;
}
int func(int a)
{
printf("%d", a);
return ;
}
4.指向指针的指针(有时候在想前面的*是不是可以无限写下去……)
int a = ;
int* p1, ** p2, *** p3;
p1 = &a;
p2 = &p1;
p3 = &p2;
printf("%d", ***p3);
5.指针数组
char* p[] = { "hello", " ", "world" };
printf("%s", *(p + ));
6.返回指针值的函数
int main()
{
char* myStrcat(char* p1, char* p2);
char str[] = "hello ";
char* mes = "world";
printf("%s\n", myStrcat(str, mes));
return ;
}
char* myStrcat(char* p1, char* p2)
{
char* start = p1;
while (*p1 != '\0')
{
p1++;
}
while (*p1++ = *p2++)
{}
return start;
}
7.文件指针
FILE *fp;
这里用词不太严谨。根据《c语言程序设计(第三版)》,指针是一个地址,而指针变量是存放地址的变量。“指针”和“指针变量”是不同的概念。
然而大多数情况下,都将“指针变量”直接称为“指针”。这里除了第二点,第六点外,”指针“都是指”指针变量“。
最新文章
- 学习SVG系列(1):SVG基础
- display模版详细介绍
- QQ聊天信息提取
- android 开发 socket发送会有部分乱码,串码,伴随着数据接收不完整
- shell脚本学习笔记
- MSP430主系统时钟以及430的低功耗设置
- JQuery动态增加删除元素
- opencv是什么
- 批量转换引擎为innodb
- JavaWeb之数据源连接池(2)---C3P0
- Android的PopupWindow使用android学习之旅(四十三)
- mybatis与数据库访问相关的配置以及设计
- python 要掌握面向对象,你得会做这些题
- salt上编写了备份日志的脚本
- MapServer Tutorial——MapServer7.2.1教程学习——教程背景
- DFS CCPC2017 南宁I题
- c++Valgrind内存检测工具---19
- Qt_QTabWidget_多行
- android textview settext卡顿深层次原因
- Python-WSGI协议,mini-web框架
热门文章
- javaWeb 概念介绍
- 【设计模式】行为型10中介者模式(Mediator Pattern)
- 图解kafka - 设计原理解析
- NumPy基础操作(3)——代数运算和随机数
- NEST 6.X升级到7.X
- 快速搭建 Windows Kubernetes
- python 中的__name__ == ";__main__";(转)
- PostgreSQL 窗口函数 ( Window Functions ) 如何使用?
- [HNOI2011]数学作业 题解
- [记录]Python的master-worker和epoll模式