一.一级指针

1.int *p,*p2;

p是变量名,*表明是指针,指针指向地址。

在定义时初始化,如int *p_2 = &b; //定义一个指针,指针指向一个地址

先定义再初始化,如int *p1; p1 = &a;//定义了一个指针,用这个变量名去赋值

*p1是p1所指向的变量的值

为a赋值
#include <stdio.h>
int m = ;
void usepo(int *a){
*a=;//输出a=2
*a =m;//输出a=3
a=&m;//输出a=0 ? }
int main(){
int a;
usepo(&a);
printf("%d",a);
}
用指针交换两个数的值
void swap(int *xx,int *yy){
int *temp;
temp=xx;
xx=yy;
yy=temp;
}/*主函数中用swap(&x,&y)调用*/ 失败,因为虽然参数是指针,但是作为参数的指针是临时复制的,在函数里互换操作的是临时指针而不是指针指向的内容 只是在子函数里创建了两个数的副本,仍没有改变源数。
void swap(int xx,int yy){
int temp;
temp=xx;
xx=yy;
yy=temp;
}/*主函数中用swap(x,y)调用*/
和这种调用本质一样
成功改变数的值
void swap(int *xx,int *yy)
{
int temp;
temp=*xx;
*xx=*yy;
*yy=temp;
}

2.与数组相关

#include <stdio.h>
void usepo(int *a){
for(int i=;i<;i++){
a[i]=i; //或*(a+i)=i;
} }
int main(){
int a[];
//a=&a[0](数组首地址),&a=int (*)[10](数组地址)
usepo(a);
for(int i=;i<;i++)
printf("%d ",a[i]);
} //正常输出0 1 2 3 4 5 6 7 8 9

一个错误的示范

用指针创建动态数组,需要分配空间。
一维数组
int *p;
p = (int*)malloc(m*(sizeof(int)));//动态申请内存
二维数组
int **p;
p = (int**)malloc(m*(sizeof(int*)));//二级指针所在地址申请内存
int i, j; for (i = ; i<m; i++)
p[i] = (int*)malloc(sizeof(int)*n);//一级指针所在地址申请内存
用三级指针传递二维数组指针地址创建二维动态数组(迷宫问题)
int **maze=NULL;
initMAZE(&maze);
void initMAZE(int ***maze){
srand(time(NULL));
int i,j;
int x,y;//读入x,y
int **typeM;
scanf("%d %d",&x,&y);
//为二级模板数组申请空间
typeM = (int **)malloc(sizeof(int*)*(x+));
for (int r=;r<=x+;r++)
typeM[r]=(int *)malloc(sizeof(int)*(y+));
//迷宫赋值
for (i = ; i<=x; i++)
{
for (j = ;j<=y;j++){
typeM[i][j]=(int)rand()%;
} } for (i = ; i <=x; i++){
typeM[i][]=;
typeM[i][x]=; }
for (j = ;j<=y;j++){
typeM[][j]=;
typeM[x][j]=; }
//保证入口出口是可走的
typeM[][]=;
typeM[x-][x-]=;
*maze = typeM; }

最新文章

  1. JavaScript 解决 onblur 与 onclick 冲突
  2. [翻译]写给精明Java开发者的测试技巧
  3. cocos2d-x test学习[1]
  4. 图片_ _优化Bitmap加载图片1
  5. R文件丢失异常原因汇总
  6. 初涉JavaScript模式 (6) : 原型模式 【二】
  7. spring的beans.xml的配置
  8. 使用Qt设计师文件的3种方式
  9. [译]反-反汇编 & 混淆 #1: 苹果没有遵循自己制定的Mach-O规范?
  10. 全选与单选chekbox的自定义实现(angular框架)
  11. 分享调用Java private方法
  12. Problem : 1412 ( {A} + {B} )
  13. iframe实现伪ajax
  14. ios vue2.0使用html5中的audio标签不能播放音乐
  15. 树上统计treecnt(dsu on tree 并查集 正难则反)
  16. Qt基础学习(3)-----滑动条之QSlider
  17. CF1096:D. Easy Problem(DP)
  18. Windows 8/8.1 及 Windows Phone 8 应用神器 - APP Producer
  19. phoenix使用vue--单独js(不使用app.js)
  20. [Node.js]Express web框架

热门文章

  1. Next.js 分页组件
  2. JSP——文件上传
  3. c++字节对齐
  4. paiza
  5. 用纯c语言完成16位模式下的引导程序
  6. windows 杀死进程
  7. vue分页效果
  8. python pdfkit html转pdf响应式轮子 django例
  9. eclipse 安装MyBatis插件 -- 官网直接拖动“安装”
  10. Django url