指针应用

//

//  main.c

//  指针应用

//

//  Created by zhangxueming on 15/6/3.

//  Copyright (c) 2015年 zhangxueming. All rights reserved.

//



#include <stdio.h>



//指针与函数



void swap(int *a, int *b)

{

    int temp = *a;

    *a = *b;

    *b = temp;

}



//int main(int argc, const char * argv[]) {

//    int a=10, b=20;

//    

//    swap(&a,&b);

//    

//    printf("a = %d b = %d\n", a, b);

//    return 0;

//}



//利用指针,输入10个数到数组中, 再输出



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

//{

//    int a[10];

//    int *p = a;

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

//        scanf("%d", p++);

//    }

//    p=a;

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

//        printf("%d ", *p);

//        p++;

//    }

//    printf("\n");

//    

//    return 0;

//}





//指针实现数组逆序

//数组作为函数的参数, 丢失一个长度

void reverseArray(int *a, int len)

{

    for (int i=0; i<len/2; i++) {

        int temp = *(a+i);

        *(a+i)=*(a+len-1-i);

        *(a+len-1-i)=temp;

    }

}

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

//{

//    int a[10]={1,2,3,4,5,6,7,8,9,10};

//    reverseArray(a, 10);

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

//        printf("%d ", *(a+i));

//    }

//    return 0;

//}



//int a[10]; --> int [10] --> int *



//int main(int argc,const char **argv)

//{

//    int a[10]={};//

//    int *p = a;

//    printf("%p\n", p);

//    printf("%p\n", a);

//    

//    p++;

//    printf("%p\n", p);

//    printf("%p\n", a+1);//a int *

//    

//    return 0;

//}



//练习:编写函数 replace, 在一个字符数组里面查找指定字符,并用相应的字符替代。函数原型如下:

void replace(char *array, char old, char new, int length)

{

    for (int i=0; i<length; i++) {

        if (*(array+i)==old) {

            *(array+i)=new;

        }

    }

}

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

//{

//    char str[5]={'a','a','b','c','a'};

//    replace(str, 'a', 'A', 5);

//    for (int i=0; i<5; i++) {

//        printf("%c ", *(str+i));

//    }

//    return 0;

//}





//练习:编写函数 insert, 向一个字符数组指定位置插入一个字符,后面的字符依次向后移动。函数原型如下:

//"helloworld"

void insert(char *array, int index, char new, int length)

{

    for (int i=length-1; i>=index; i--) {

        *(array+i+1) = *(array+i);

    }

    *(array+index) = new;

}

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

//{

//    char str[12]="helloworld";

//    insert(str, 5, 'A', 11);

//    printf("%s\n", str);

//    

//    return 0;

//}



//const与 指针

//只读的

//const type name

//type const name



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

{

    //const int a=100;

    //int const b;

    //a=200;// 变量a是只读变量不能被修改

    

    

//    int a=10;

//    int b=20;

//    const int *p = &a;//*p 是只读的, p可读可写的

//    //*p =30;

//    p= &b;

    

//    int a=10;

//    const int *const p= &a;//*p p都是只读的

    

//    int a=10;

//    const int *p=&a,q=20;// *p q 是只读的 p是可读可写

    

//    const int *p, *q;// *p *q是只读的, p q是可读可写的

   

 //   const int *const p, *q;//*p p *q 是只读的, q是可读可写的

    

    const int *const p, *const q;// *p *q p q都是只读的

    

    return 0;

}

 

你可能感兴趣的:(指针)