黑马程序员技术交流社区
标题:
分享自己总结的指针的一些使用
[打印本页]
作者:
hui1107464497
时间:
2015-5-27 14:04
标题:
分享自己总结的指针的一些使用
1.指针的定义: 数据类型 *指针变量名
2.指针的赋值:指针变量名=&... 或者 指针变量名 =数组名
注意:定义的时候 * 仅代表这是在定义一个指针变量,没有其他的意义
eg.
int main()
{
int *p;//定义指针变量
int a=10;
p=&a;//给指针变量赋值,给的是变量a的地址符
printf("%d",*p);//获取指针变量的值
}
复制代码
3.指针操作数组时,因为数组是属于引用类型的,所以将数组名直接赋值给指针,就相当于把数组的地址给了指针
eg .
int main()
{
char *p;//定义指针变量
char arr[]={'a','b','c','\0'};
p=arr;//给指针变量赋值 也可以 p =arr[0]
//利用指针访问数组
printf("%c",*(p+1)); //代表获取数组从0+1位置点元素
printf("%c",*p); //访问的是数组的第0个元素
return 0;
}
复制代码
4.指针指向函数
定义要指向函数的指针: 函数的返回值 (*指针变量名)(参数类型,...)
给指针变量赋值:指针变量名=函数名称
调用指针(相当于调用函数):指针变量名(参数值,...)或者(*指针变量名)(参数值,...)
作用:这个指针就是用来间接调用函数的
eg.
#include <stdio.h>
//声明函数
int test(int,int);
int main()
{
//定义指向函数的指针
int (*p)(int,int);
//给指针赋值
p=test;
//利用指针调用函数,并接受返回值
int sum= p(1,2);
int sum2= (*p)(10,20);
//输出
printf("sum=%d,sum2=%d",sum,sum2);
return 0;
}
//定义函数
int test(int a,int b)
{
return a+b;
}
复制代码
5.返回指针的函数
定义函数:返回值类型 *函数名(){}
#include <stdio.h>
//声明函数
char *test();
int main()
{
//调用指针函数
char *result=test();
//输出
printf("%s",result);
return 0;
}
//定义函数
char *test()
{
return "abc";
}
复制代码
6.指向指针的指针
定义:数据类型 **指针变量名
赋值:指针变量名=&变量
int main()
{
int a=10;
//定义指针,指向a
int *p=&a;
//定义指向指针的指针
int **p2;
//给p2赋值
p2=&p;
//利用指针指向a改变a的值
*p=20;
printf("p改变:a=%d\n",a);
//利用指向指针的指针改变a的值
*(*p2)=30; //*p2 就代表指向指针p ,然后再加上 * 就相当于利用指针p去访问a
printf("p2改变:a=%d",a);
return 0;
}
复制代码
作者:
sdzwb89
时间:
2015-5-27 14:16
好高大上的感觉~
作者:
13673696542
时间:
2015-5-27 20:10
写的很全面。
作者:
小龙女的萝卜
时间:
2015-5-27 20:27
指向指针的指针,感觉指的多了就好迷
作者:
woaidd99
时间:
2015-5-27 21:22
还没学到 可以看看
作者:
碧空海
时间:
2015-5-27 21:26
学习了,,,,,,,,,,,,,,,,,
作者:
doushu
时间:
2015-5-27 21:43
顶顶顶..........
作者:
huanleabcd
时间:
2015-5-28 07:33
学习下,共同努力吧~~~
作者:
Asskicker
时间:
2015-5-28 09:07
巾帼不让须眉啊,妹子总结的很到位,让我一个汉子都佩服的五体投地。
作者:
zhangyq
时间:
2015-5-28 22:28
不错!学习一下!!!!!!!
作者:
小路8866
时间:
2015-5-29 08:53
不错不错,学习了
作者:
蜡笔小炎
时间:
2015-5-29 11:47
已收藏
作者:
这是829
时间:
2015-5-29 23:43
围观学习啦!
作者:
七尺阳光
时间:
2015-5-29 23:54
关于指针非常好的总结,学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2