码迷,mamicode.com
首页 > 其他好文 > 详细

指针变量复习

时间:2015-07-28 06:39:09      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:

1,指针变量存放的是4个字节,如果变量的所占字节超过四个字节给出代码:

 1 #include <stdio.h>
 2 int main(int argc, char *argv[])
 3 {
 4     double arr[]={1,2,3,4,5};
 5     double * p=&arr[0];
 6     printf("%p\n",p);
 7     p=&arr[1];
 8     printf("%p\n",p);
 9     
10             return 0;
11 }

技术分享

2,如果使用一个没有返回值得函数修改指针变量的地址,代码如下:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 void p_add(double **q);
 4 int main(int argc, char *argv[])
 5 {
 6     double arr[]={1,2,3,4,5};
 7     double * p=&arr[0];
 8     printf("%p\n",p);
 9     p_add(& p);
10     printf("%p\n",p);
11             return 0;
12 }
13 void p_add(double **q)
14 {
15     *q=(double *)malloc(sizeof(double *));
16 }

3,指针和数组的关系,知道数组的首地址和长度,那么可以用指针来表示这个数组了

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 void output( int*q,int len);
 4 int main(int argc, char *argv[])
 5 {
 6     int arr[]={1,2,3,4,5};
 7     int len=sizeof(arr)/sizeof(arr[1]);//一定是个正整数 
 8     output(arr,len) ;
 9     return 0;
10 }
11 void output(int *q,int len)
12 {
13     int id;//c 语言需要先声明
14     for(id=0;id<len ;id++ )
15     {
16         printf("%d\t",*(q+id));
17         //printf("%d\t",q[id]);
18     } 
19     printf("\n");
20 }

其实指针和数组并非一个概念,他们之间是有区别的,比如第7行,数组名arr作为数组首地址等同于&arr[0],但是sizeof(arr)跟sizeof(arr[0])和sizeof(q) 是两回事,以后会再说

未完待续……

指针变量复习

标签:

原文地址:http://www.cnblogs.com/codeblock/p/4681693.html

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