指针与数组与结构体

原创 2016年06月01日 16:45:20

全局变量,初始化赋值变量和static变量全在数据段中,编译的时候确定的。

而指针malloc是在堆中赋值,可以free。数组不能free。如果指针是指向数组,这个指针也不能free.

只有是从malloc来的,才能free.

it is different from struct ,struct a have 7 int , a+1 ,offset is 8.int *p; int 型指针, one offset is int.

数组入参是地址,是地址指向的内容变了,地址没变


#include <stdio.h> 

#include <stdlib.h> 
  
void quick_sort(int s[], int l, int r)  
{  
    int i, j, x;  
    if (l < r)  
    {  
        i = l;  
        j = r;  
        x = s[i];
        while (i < j)  
        {  
            while(i < j && s[j] > x)
                j--; 
            if(i < j)   
                s[i++] = s[j];  
      
  
            while(i < j && s[i] < x)   
                i++; 
            if(i < j)   
                s[j--] = s[i];  
  
        }  
        s[i] = x;  
        quick_sort(s, l, i-1); 
        quick_sort(s, i+1, r);  
    }
}


void quick_sortp(int *s, int l, int r)  
{  
    int i, j, x;  
    if (l < r)  
    {  
        i = l;  
        j = r;  
        x = *s;  
        while (i < j)  
        {  
            while(i < j && *(s+j) > x)   
                j--; 
            if(i < j)   
                {
                   *(s+i) = *(s+j);
                   i++;
                } 
      
  
            while(i < j && *(s+i) < x)   
                i++; 
            if(i < j) {
               // s[j--] = s[i];
                 *(s+j) = *(s+i);
                 j--;
            }
        }  
        *(s+i) = x;  
        quick_sort(s, l, i-1); 
        quick_sort(s, i+1, r);  
    }

  
int main(int argc,char * argv[])  
{  
    int a[]={49,38,65,97,76,13,27};
    int *p;
    int l = 0;  
    int r = 6;


    p = (int *)malloc(7*sizeof(int));
    *p=49;
    *(p+1)=38;
    *(p+2)=65;
    *(p+3)=97;
    *(p+4)=76;
    *(p+5)=13;
    *(p+6)=27;


    for(int i=0;i<=r;i++)  
        printf("%4d",*(p+i));
 
  printf("===============\n");  
  //  quick_sort(a,l,r);
    quick_sortp(p,l,r);
 
    for(int i=0;i<=r;i++)  
       // printf("%4d",a[i]);  
        printf("%4d",p[i]);


   printf("\n");
    return 0;  
}

漫步IOS--结构体指针、结构体数组指针,结构体Char数组声明

1 结构体指针 结构体指针也和正常的指针是一样的使用,只是多了一种调用方法 point m={1,0},n={4,0}; point *p_m ,*p_n;point是一个结构体,调用的时候先声明...
  • u013465022
  • u013465022
  • 2015年01月02日 16:23
  • 681

数组和指针表示法

 关键词: 数组                                                                      ...
  • xzdwfwt111
  • xzdwfwt111
  • 2008年01月15日 11:55
  • 517

C语言 一个例子说明结构体变量,结构体数组和结构体指针

输入三个学生的个人信息 包含学号 姓名和三门学科的成绩 输出平均成绩最高的学生的学号 姓名 各科成绩以及平均成绩 代码如下(谭浩强c程序设计的例子)#includestruct Student {...
  • chaipp0607
  • chaipp0607
  • 2016年12月21日 10:26
  • 10346

C和指针—结构体和联合

首先在这一章我们要讲的是结构与联合。 在平时,我们往往需要对数据进行成组的形式进行存储和访问,所以,在这里C提供了两种可以存储多种数据的数据类型:数组和结构。1.关于结构体的基础知识数组,这是一个同...
  • qq_26768741
  • qq_26768741
  • 2016年05月14日 17:28
  • 1450

C语言——结构体与指针引用&结构体数组与指针引用

最近在搞C语言基础储备,无意间发现在此方面的知识还有漏洞,于是上网查阅资料,看到了下面的正文内容,阅后感到思路清晰心情愉悦。所以就顺手记录了下来,以后要是又忘记可以再来看。当然最主要的还是分享给大家!...
  • bonnshore
  • bonnshore
  • 2012年07月31日 10:23
  • 20224

C语言 结构体与结构体指针用法总结

在C语言开发中,结构体用到的机会很多。所谓结构体,就是定义一种里面包含多种元素的变量。 我们来看一个简单的例子。比如你想定义一个书名列表然后为每本书创建书名和作者作为书的信息。结构体变量定义如下: s...
  • SYQ_aa
  • SYQ_aa
  • 2017年08月20日 17:03
  • 220

结构体struct的应用、结构体变量、结构体指针变量、结构体指针变量类型的区别

结构体的使用:    今天去了坑爹的创新实验课,其实也不是说这个课很水,就是不适合大二的我在数电,模电都没接触的情况下去学习,所以我就对这个课就一头雾水,不过就在我蒙了几个小时后决定不能浪费我宝贵的时...
  • u011955072
  • u011955072
  • 2013年10月27日 14:11
  • 2934

C语言中指针与数组的区别与联系

好久不写东西了,从毕业以来,整个人都懒散了很多。今天终于鼓起勇气,来写一点儿东西…… 指针与数组对于C语言程序员来说肯定不会陌生,一说起这个话题,我就想起了曾经被内存、地址、地址里的内容这些概念狂虐时...
  • cyfcsd
  • cyfcsd
  • 2017年02月03日 17:29
  • 4515

C语言结构指针详解(推荐)

这篇文章非常清楚,一定要转下---------------------------------------------这篇文章是九九年写的,这篇文章适合中级程序员。有不明白之处不要紧,多看几遍,然后花...
  • ad_ad_ad
  • ad_ad_ad
  • 2007年05月11日 10:14
  • 32366

数组与指针关系

1
  • App_12062011
  • App_12062011
  • 2013年09月15日 20:25
  • 3339
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:指针与数组与结构体
举报原因:
原因补充:

(最多只允许输入30个字)