您的位置:首页 > 编程语言 > C语言/C++

黑马程序员--C语言基础--指针

2015-11-10 18:01 295 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

/*

1.指针的定义格式:

数据类型 *指针变量名

2.指针的赋值:

指针变量内存储的是指针所指向变量的地址

指针变量名=&... 或者 指针变量名 =数组名

注意:定义的时候 * 仅代表这是在定义一个指针变量,没有其他的意义

*/

int main()
{

//定义指针变量
int *p;

//定义整形变量
int a=10;

//给指针变量赋值,给的是变量a的地址符
p=&a;

//获取指针变量的值
printf("%d",*p);

}


3.指针操作数组时,因为数组是属于引用类型的,所以将数组名直接赋值给指针,就相当于把数组的地址给了指针

int main()
{
//定义char*型的指针变量
char *p;
// 定义字符数组
char arr[]={'a','b','c','\0'};
//给指针变量赋值 也可以 p =arr[0]
p=arr;

//利用指针访问数组

printf("%c",*(p+1)); //代表获取数组从0+1位置点元素
printf("%c",*p); //访问的是数组的第0个元素

return 0;
}


4.指针指向函数

  定义要指向函数的指针: 函数的返回值 (*指针变量名)(参数类型,...)

  给指针变量赋值:指针变量名=函数名称

  调用指针(相当于调用函数):指针变量名(参数值,...)或者(*指针变量名)(参数值,...)

  作用:这个指针就是用来间接调用函数的

#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;
}


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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: