zoukankan      html  css  js  c++  java
  • 指针变量复习

    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
    ",p);
     7     p=&arr[1];
     8     printf("%p
    ",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
    ",p);
     9     p_add(& p);
    10     printf("%p
    ",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	",*(q+id));
    17         //printf("%d	",q[id]);
    18     } 
    19     printf("
    ");
    20 }

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

    未完待续……

  • 相关阅读:
    Material和SharedMaterial的区别
    unity 字典序列化的问题
    序列化到本地
    数据分离
    太久没更 重回博客园
    Unity下替换模型后 之前生成的Prefab中的原模型脚本不会丢失
    Enum.Parse
    Assert断言机制
    20170612
    Unity Cookie
  • 原文地址:https://www.cnblogs.com/codeblock/p/4681693.html
Copyright © 2011-2022 走看看