指针与数组与结构体

原创 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;  
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

结构体数组与指针

struct Student //定义的结构体类型 相当于int 、float这些类型 ,是用户自定义的 { char name[20]; int num; float sco...

指针与结构体、函数指针

源码: // csdn_struct.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include struct Person { char sz...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

07指针 指针与数组 指针与字符串 指针与函数 结构体与指针 宏

指针 指针与数组 指针与字符串 指针与函数◀️ 指针与数组 1.数组名:数组元素首地址 eg: int array[3]={1,3,6}; 这里arra...

指针与一维、二维数组

++++++++++示例程序++++++++++ #include void main() { char m[100]={"abcdefghijklmnopq"}; int i,j; ...

指针知识梳理2-指针与一维数组

指针与数组的关系。

指针学习笔记(4)——指针与数组

指针变量 要点 1. 任何指针变量占用的空间都是4个字节(32位机) 2. 任何指针变量加1是使它指向下一个元素的地址 测试程序 void test_1() { char c; int i;...
  • ls667
  • ls667
  • 2016-03-14 00:57
  • 180

结构体与指针

#include using namespace std; struct Date{ int year; int month; int day; }; void show(D...

22.数组和指针的姻缘

22.1.从内存角度来理解数组 22.2.从编译器角度来理解数组 22.3.数组中关键符号的理解 22.4.以指针方式访问数组 22.5.从内存角度理解访问数组的本质 22.6.指针和数组类型的匹配问...
  • Rston
  • Rston
  • 2016-03-21 12:53
  • 125

C++结构体与指针

一个结构体变量的指针就是该变量所占据的内存段的起始地址。可以设一个指针变量,用来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址。指针变量也可以用来指向结构体数组中的元素。 通过指向结构...

结构体与指针

结构体是一种构造数据类型,将不同数据了类型结合起来成为自定义的数据类型struct Man m = {"name",20};// 只能在申明的时候赋值 m = {"age",20} XXX 几种写法:...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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