zoukankan      html  css  js  c++  java
  • C语言---指针复习

    指针基本概念

    (1)指针就是地址,指针变量存放地址
    (2)通过变量名直接存取值为直接访问,通过该地址获得值为间接访问
    (3)怎么样定义指针变量
    int *p1,*p2;
    (4)给指针变量赋值
    int a;
    int *p;
    p = &a;//将a的地址赋值给变量p


    (5)怎么样引用指针变量
    带类型语句,称为定义语句
    指针变量定义语句以外的语句:
    ##不带*号表示地址

    ##带*号,表示对应地址的值
    (6)指针变量作为函数参数
    传址与传值的区别

    #include <stdio.h> 
    void f(int *p,int n){
        *p = 1998;//传址:被调用函数中改变地址中的值,也改变实参的值
        n = 99;//传值:被调用函数中改变形参的值,不影响实参的值 
    }
    
    int main()
    {
        int a = 10,b=20;
        f(&a,b);
        printf("%d %d
    ",a,b); 
        return 0;
    }

     指针与数组

     数组名也是指针,是第一个元素的地址

    #include <stdio.h>
    int main()
    {  
        int a[5]={5,6,4,3,9};
        printf("第一个元素的地址%d
    ",a);
        printf("第一个元素的地址%d
    ",&a[0]);
        printf("第二个元素的地址%d
    ",a+1);
        printf("第二个元素的地址%d
    ",&a[1]);
        return 0; 
    }

    通过指针引用数组

    #include <stdio.h> 
    int main()
    {
        int a[4]={1,2,3,4};
        int *p;
        p = a;
        printf("%d
    ",a[1]);
        printf("%d
    ",*(p+1));
        printf("%d
    ",*(a+1)); 
        return 0;
    }

    用指针写的插入排序

    void sort(int *a,int n){
        int i,j;
        for(i=1;i<n;i++){
            if(*(a+i)<*(a+i-1)){
                int temp = *(a+i);
                for(j=i-1;j>=0&&temp<*(a+j);j--){
                    *(a+j+1) = *(a+j);
                }
                *(a+j+1) = temp;
            }
        }
    }

    指针与字符串

    字符指针变量和字符数组用法是有区别的

    #include <stdio.h>
    int main()
    {
        char *String;//char* String="I love you baby";
        String="I love you baby";//字符指针变量存放的字符串第一个字符的地址
        printf("%s
    ",String);
        return 0;
    }

    但是字符数组不可以这样用.

    二维数组和指针

    #include <stdio.h>
    int main()
    {
        int a[2][3]={{1,2,3},{4,5,6}};
        int i,j;
        int *p;p = a;
        for(i=0;i<2;i++){
            for(j=0;j<3;j++){
                printf("%d	",*(p+i*3+j));
            }
            printf("
    ");
        }
        printf("%d
    ",p[4]);
        return 0;
    }
  • 相关阅读:
    Python—格式化输出
    拨开Python迷雾
    彻底搞懂Python切片操作
    CodeMirror教程,CodeMirrorAPI中文信息
    PHP header() session_start() 函数前为什么不能有输出?
    PHP time() date() strtotime()日期函数总结
    LAMP专业术语的规范书写格式
    经验之谈
    PHP接口对方(C#)接收不到数据?ContentLength=1
    jQuery判断checkbox是否选中?操作checkbox(不)选中?
  • 原文地址:https://www.cnblogs.com/zoulingjin/p/9353071.html
Copyright © 2011-2022 走看看