程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 指針變量復習,指針變量

指針變量復習,指針變量

編輯:C++入門知識

指針變量復習,指針變量


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) 是兩回事,以後會再說

未完待續……

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved