美文网首页
C语言 day9

C语言 day9

作者: y_7539 | 来源:发表于2022-06-08 17:53 被阅读0次

指针类型的意义

1.指针类型决定了:指针解引用的权限有多大
2.指针类型决定了:指针走一步,能走多远(步长)

int main()
{
    int arr[10] = { 0 };
    int* p = arr;
    char* pa = arr;
    printf("%p\n", p);
    printf("%p\n", p+1);
    printf("%p\n", pa);
    printf("%p\n", pa+1);
    /*0093FE44
    0093FE48
    0093FE44
    0093FE45*/
}
int main()
{
    int arr[10] = { 0 };
    int* p = arr;
    int i = 0;
    for (i = 0;i < 10;i++)
    {
        *(p + i) = 1;
    }
}

避免野指针

1.指针初始化
2.指针指向空间被释放掉后置空
3.小心指针越界
4.指针使用之前检查有效性

指针-指针得到的是两个指针之间的元素个数(前提是两个指针指向同一空间)

int main()
{
    int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    int* p = arr;
    printf("%d\n", arr[2]);
    printf("%d\n", p[2]); //p[2]->*(p+2)

    //2和arr是操作数  
    printf("%d\n", 2[arr]);


}
int main()
{
    int a = 10;
    //一级指针
    int* pa = &a;
    //ppa是二级指针,pa是一个变量。&pa取出pa在内存中的地址  
    int** ppa = &pa;
    //*ppa => pa      *pa => a 
}

指针数组

整形指针数组 int * pr[5]

结构体

也是一些值的集合,但是值的类型可以不同

struct Student
{
    struct S s;
    char name[20];
    int age;
    char id[10];
};

void print1(struct Student st) {
    printf("%c %lf %s %d %s \n", st.s.c, st.s.d, st.name, st.age, st.id);
}

void print2(struct Student *stud) {
    printf("%c %lf %s %d %s\n", stud->s.c, stud->s.d, stud->name, stud->age, stud->id);
}
int main()
{
    struct Student stu = {{'1', 1.11}, "张三", 17, "20202212"};
    printf("%c %lf %s %d %s\n", stu.s.c, stu.s.d, stu.name, stu.age, stu.id);
    print1(stu);  //传值调用
    print2(&stu);  //传址调用
}

函数调用的参数压栈
函数调用会在内存的栈区开辟一块空间

相关文章

  • C语言 day9

    指针类型的意义 1.指针类型决定了:指针解引用的权限有多大2.指针类型决定了:指针走一步,能走多远(步长) 避免野...

  • C++简答题

    一、简答题 1、C语言与C++语言的区别? 答: C语言是面向过程语言,C++是面向对象语言(OOP) C语言...

  • C语言快速入门 - Hello World 详解

    目录 C语言快速入门 C语言快速入门 - Hello World 详解 C语言快速入门 - 变量 C语言快速入门 ...

  • C语言快速入门 - 简单运算符

    目录 C语言快速入门 C语言快速入门 - Hello World 详解 C语言快速入门 - 变量 C语言快速入门 ...

  • C语言快速入门 - 控制语句

    目录 C语言快速入门 C语言快速入门 - Hello World 详解 C语言快速入门 - 变量 C语言快速入门 ...

  • C语言快速入门 - 变量

    目录 C语言快速入门 C语言快速入门 - Hello World 详解 C语言快速入门 - 变量 C语言快速入门 ...

  • C语言快速入门

    目录 C语言快速入门 C语言快速入门 - Hello World 详解 C语言快速入门 - 变量 C语言快速入门 ...

  • C语言如何使用随机数?

    C语言如何使用随机数? 功能介绍推送一些C语言方面的知识,提供C语言/C++语言资料,讨论和学习C语言/C++编程...

  • C++语言学习之面向对象

    1.C语言与C++语言的区别 C++面向对象 C 面向过程 函数+结构体 C++可以运行调用C语言 反之 C语言无...

  • C小白

    一 C语言概述(what)①C语言的特点C语言是一种底层语言,小型语言,包容性语言②C语言的优点高效。可移植。功...

网友评论

      本文标题:C语言 day9

      本文链接:https://www.haomeiwen.com/subject/ncbemrtx.html