zoukankan      html  css  js  c++  java
  • 08指针 指针与数组 指针与字符串 指针与函数 结构体与指针 宏

    指针

    指针与数组

    指针与字符串

    指针与函数◀️

    指针与数组

    1.数组名:数组元素首地址

    eg:

    int array[3]={1,3,6};

    这里array 恒等于&array[0]

    2.int *p = a;          

    int *p = 0;            

    int a[]={0};

     

    3.int *p = a;

      均指向数组的首地址

     

    *p是? *(p+1)是?(*p)+1是?

    *(p+1)决定向下移动几个字节是类型

    4.指针可以当数组名使用

      p[1] = 3;

    恒等于a[1] ;恒等于*(p+1);恒等于*(a+1)

    5.指针与数组的区别

    1)所占空间不同

     指针:只与操作系统位数有关

     数组:与元素个数和类型有关

    2)数组名是常量地址, 不能重指向(不能赋值)

      指针可以重指向

      用指针能否算出数组元素个数?

    答: 字符串,字符数组 可以 以’’ 结束 ,其他类型不可以

      通过指针计算字符串的长度

        char string[10] = "iPhone";

        char *p4 = string;

       // *(p+1) = 'v';  //操作单个字符

        printf("%s" ,string);

        printf(" %s",p4+1); //操作整个字符 打印 phone

        

        int count = 0;

        while ( *(p4 + count)!='') {

            count++;

        }

        printf(" %d “,count);

     

      int  countn =sizeof(string)/sizeif(char);

    //如何全部输出字符串

    char *strings[3] = { “iOS”,”Android”,”Win8”};

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

    {

            printf(“%s”,strings[i]);

    }

     

    注意:可以用字符修改字符数组(可以调整位置等),但不可修改常量字符串

    即iOS中单个的字符

     

    指针与函数 与结构体

     

    //使用指针查找学员数组中性别为男的学员,成绩增加10分,超过100分的记为100分

    typedef struct{

        char name[20];

        char gender;

        char namel[20];

        float score;

        

    } Student;

    void manStudents(Student *mstu, int count);

    void manStudents(Student *mstu, int count)

    {

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

            if ((mstu+i)->gender == 'm') {

                ((mstu+i)->score)=((mstu+i)->score)+10;

                if (((mstu+i)->score) > 100) {

                    (mstu+i)->score = 100;

                }

            }

        }

    }

    #define MUL(A,B)  ((A)*(B))

    总结

    1)指针变量是存放地址的变量,指针变量的赋值,意味着指针的重指向

    2)数组名代表数组的首地址,而且是常量地址,不可以修改

    3)函数调用时,形参拷贝了实参的值

     

  • 相关阅读:
    Enable mod_rewrite in apache2.2
    静态注册BroadcastReceiver内部类
    Install MySQL Server 5 on Ubuntu
    Install PHP and Apache
    Android BroadcastReceiver应用详解
    C 简易贪吃蛇的编写
    MyBatis学习存档(1)——入门
    MyBatis学习存档(2)——核心配置文件
    Maven学习存档(2)——settings.xml配置
    Java中的float、double计算精度问题
  • 原文地址:https://www.cnblogs.com/panny/p/4082389.html
Copyright © 2011-2022 走看看