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) 是两回事,以后会再说

    未完待续……

  • 相关阅读:
    阅读ARm芯片手册 阅读方法
    Linux驱动mmap内存映射
    Linux下inotify的基本使用及注意事项
    网络视频监控与人脸识别
    Linux pci驱动源码
    Verilog语法
    跟着我从零开始入门FPGA(一周入门XXOO系列)-1、Verilog语法
    周立功-我的25年嵌入式生涯
    Linux 进程学习
    [转]MFC下关于“建立空文档失败”问题的分析
  • 原文地址:https://www.cnblogs.com/codeblock/p/4681693.html
Copyright © 2011-2022 走看看