黑马-C语言-指针

e.g.:

int a = 10;

int *p;

p = &a;

printf(“%d”, *p);

注释: int *p中 *p和p的差别:简单的说*P是数值,p是地址。

*p可以当作变量来用,*的作用就是取后面地址的p的数值。

p是当作地址来使用。可以用在scanf函数中:scanf(“%d”,p)

*p++是地址会变化 取当前值,然后在移动地。

(*p)++ 是数值会变化 取当前值,然后在使数值增加1.


1.定义指针:

1>.int a = 2,*p = &a;(定义的同时初始化)

2> int a = 2,*p;p = &a;(定义之后初始化)


注:函数之间应用如果传的是基本类型则是普通的值传递,main函数的数值不变,如果传的是指针则值改变。

e.g. void text (int ,int)void text (int * ,int*)

{int t;{ int t;

t = a,a = b ,b = t;t = *a ,*a = *b,* b = t

}

main () main() {{

int x = 1,y = 3;int x = 1,y = 3;

text (x,y);text (&x,&y)

printf("%d,%d",x,y);printf("%d,%d",x,y);

} }

前者答案是1和3,后者答案是3和1.

2.指向函数的指针

e.g.;

1>指针也是C语言中的一种数据类型,因此一个函数的返回值肯定可以是指针类型的.

2>返回指针的函数的一般形式为:类型名 * 函数名(参数)

3.指向函数的指针

定义:定义的一般形式:函数的返回值类型 (*指针变量名)(形参1, 形参2, ...);

使用注意:

1>由于这类指针变量存储的是一个函数的入口地址,所以对它们作加减运算(比如p++)是无意义的.

一般经常用指向字符串比如;

char c[ ] = "hello world!";可以改成 char *c = “hello world!”。

阅读更多
上一篇黑马-C语言-流程控制,循环结构
下一篇黑马-C语言-枚举
想对作者说点什么? 我来说一句

黑马C语言听课笔记

2018年01月12日 5.28MB 下载

传智黑马C++视频 包含qt、linux

2017年09月18日 44B 下载

C语言指针教程C语言指针教程

2011年04月26日 155KB 下载

C语言疯狂讲义

2015年11月05日 26.31MB 下载

c语言指针课件

2011年11月20日 73KB 下载

C语言指针学习C语言指针学习

2011年06月04日 129KB 下载

没有更多推荐了,返回首页

关闭
关闭