码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-11-10 19:19:38      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:

      ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

 

/*

1.指针的定义格式:

数据类型 *指针变量名

2.指针的赋值:

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

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

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

*/

 

 1 int main()
 2 {
 3 
 4 //定义指针变量
 5 int *p;
 6 
 7 //定义整形变量
 8 int a=10; 
 9 
10 //给指针变量赋值,给的是变量a的地址符
11 p=&a;
12 
13 //获取指针变量的值
14  printf("%d",*p);
15 
16  }

 

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

 1 int main()
 2 {
 3     //定义char*型的指针变量
 4     char *p;
 5   // 定义字符数组
 6     char arr[]={a,b,c,\0};
 7   //给指针变量赋值 也可以 p =arr[0]
 8     p=arr;
 9     
10     //利用指针访问数组
11     
12     printf("%c",*(p+1)); //代表获取数组从0+1位置点元素
13     printf("%c",*p); //访问的是数组的第0个元素
14     
15     return 0;
16 }

 

 4.指针指向函数

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

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

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

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

 1 #include <stdio.h>
 2 
 3 //声明函数
 4 int test(int,int);
 5 
 6 int main()
 7 {
 8    //定义指向函数的指针
 9     int (*p)(int,int);
10     //给指针赋值
11     p=test;
12     //利用指针调用函数,并接受返回值
13     int sum=  p(1,2);
14     int sum2= (*p)(10,20);
15     //输出
16     printf("sum=%d,sum2=%d",sum,sum2);
17     
18     return 0;
19 }
20 //定义函数
21 int test(int a,int b)
22 {
23     return a+b;
24 }

 

 

6.指向指针的指针

  定义:数据类型 **指针变量名

  赋值:指针变量名=&变量

 

 1 int main()
 2 {
 3     
 4     int  a=10;
 5     //定义指针,指向a
 6     int *p=&a;
 7     //定义指向指针的指针
 8     int **p2;
 9     //给p2赋值
10     p2=&p;
11     
12     //利用指针指向a改变a的值
13     *p=20;
14     printf("p改变:a=%d\n",a);
15     //利用指向指针的指针改变a的值
16     *(*p2)=30; //*p2  就代表指向指针p ,然后再加上 * 就相当于利用指针p去访问a
17     printf("p2改变:a=%d",a);
18     return 0;
19 }

 

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

标签:

原文地址:http://www.cnblogs.com/xbl-hm/p/4953862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!