C语言指针3

作者: 潇湘候晨雪 | 来源:发表于2017-08-28 17:50 被阅读9次

    int main()

    {

    int a[5] = {1,3,5,7,9};

    int *num[5] = {&a[0],&a[1],&a[7],&a[9]};

    int **p,i;

    p = num;

    for(i = 0;i < 5;i++)

    {

    printf(“%d”,**p) ;

    p++;

    }

    }

    //=======================================

    指针数组作 main 函数的形参

    int main( int argc,char *argv[ ] )

    argument count ( vector)

    //=======================================

    全局变量:分配在内存中的静态存储区,

    非静态的局部变量:分配在内存中的动态存储区,存储区称为  栈区(stack)。

    C语言允许 建立内存动态分配区域,存放临时的数据 ,这些数据不必在程序的声明 部分定义,也不必等到函数结束时 才释放。需要时 开辟 ,不需要时 释放。

    这些数据存放在 一个特别 的自由存储区 称为  堆区(heap)。由于未在声明部分 定义 他们 为 变量 或数组 ,因此不能通过 变量名 或者数组名 去引用 这些数据 ,只能通过指针 来引用。

    定义: 系统提供的库函数。

    malloc    calloc   free realloc

    //===============================

    无类型指针

    # include

    #include (time.h)

    int t = time(0);  //获取系统当前的时间

    srand(t);// 不断变化的种子

    for(int i = 0;i < 10;i++)

    {

    int a = rand();

    }

    //=============================

    递归调用

    void test()

    {

    printf(“jjj\n”);

    test();

    }

    int main()

    {

    test();

    return 0;

    }  //  注意条件

    int fun (int n)

    {

    if (n <= 0)

    {

    return 1;

    }

    int result = n * fun(n - 1);

    return result;

    }

    int main( )

    {

    int r = fun(5);

    printf(“%d”,r);

    }

    //================================

    建立动态数组 输入5个学生的成绩 建立一个函数  检查有无低于60 分的学生 ,有 则  打印 出来

    #include

    # include

    int main( )

    {

    void check(int *);

    int *p1,i;

    p1 = (int *)malloc(5 * sizeof(int));

    for(i = 0;i < 5;i++)

    scanf(“%d”,p1 + i);

    check(p1);

    return 0;

    }

    void check(int *);

    {

    int i;

    printf(“they are fail:");

    for(“i = 0;i < 5;i++”)

    if(p[i] < 60) printf(“%d”,p[i]);

    printf(“\n”);

    }

    //===============

    、指针变量的值是一个地址

    、地址就是指向  通过地址 能找到具有该地址的对象

    、一维数组名代表数组首元素的地址。 int *p,a[10];p = a;

    \

    相关文章

      网友评论

        本文标题:C语言指针3

        本文链接:https://www.haomeiwen.com/subject/obvgdxtx.html