2500字,手把手带你初步了解static关键字和指针,结构体(下)

简介: 笔记

register关键字介绍


register时寄存器关键字


register关键字只能作用于局部变量,不能作用于全局变量。

register关键字指明将局部变量存储于寄存器中。

register只是请求将这个变量存放到寄存器当中,但不一定能够请求成功

#define 定义常量和宏


用define定义标识符常量

1.png

用define定义宏

2.png

3.png

注意:宏参数是无类型的


指针


内存

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地 址。

4.png

打印a的地址

5.png

#include<stdio.h>
int main()
{
 int a=10;     //定义变量a,开辟四个字节的空间
 int *c=&a;    //定义指针变量c,并将a的地址放入其中
printf("%d",*c);      // 打印c地址中所1存放的数值
printf("%p",c)        //打印c的地址
return 0;
}

&a含义:取出a的地址,&为取地址符号

6.png

用int *类型定义一个变量将a地址里所存放的数字,赋值给int *类型的变量c,


int * c=&a含义,int 说明c指向的对象是int类型,*说明p是指针变量,


不管是什么类型的指针,都是在创建指针变量 如 char *a就是一个指针变量


指针变量是用来存放地址的


指针变量的大小取决于一个地址存放的时候需要大多空间


指针变量的大小

7.png

指针变量的大小跟系统的操作位数有关。


注:*c是指int *类型的变量c所在的地址中存放的变量。c是指以int *为类型的指针变量所指向的地址。


结构体


结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。 比如描述学生,学生包含: 名字+年龄+性别+学号 这几项信息。 这里只能使用结构体来描述了。


定义结构体


8.png

这里电话用12个空间是因为,字符串里面\0也要占用一个空间


#include <stdio.h>
struct Stu
{
    char name[100]; //姓名
    int age;         //年龄
    char sex[10];    //性别
    char tele[12]; //电话
};

struct Stu为一个结构体类型,里面的为结构体变量

给结构体赋值

9.png


赋值方法:分别按照所定义的结构体内的变量类型,按顺序赋予相应的值


struct Stu a是定义一个变量a a是结构体类型struct Stu


引用结构体变量

10.png

直接引用:用结构体变量a再加一个. 然后选择所对应的结构体变量


以指针的方式引用:用结构体名->进行应用

相关文章
|
2月前
|
存储 C语言
C语言如何使用结构体和指针来操作动态分配的内存
在C语言中,通过定义结构体并使用指向该结构体的指针,可以对动态分配的内存进行操作。首先利用 `malloc` 或 `calloc` 分配内存,然后通过指针访问和修改结构体成员,最后用 `free` 释放内存,实现资源的有效管理。
191 13
|
2月前
|
存储 人工智能 算法
数据结构实验之C 语言的函数数组指针结构体知识
本实验旨在复习C语言中的函数、数组、指针、结构体与共用体等核心概念,并通过具体编程任务加深理解。任务包括输出100以内所有素数、逆序排列一维数组、查找二维数组中的鞍点、利用指针输出二维数组元素,以及使用结构体和共用体处理教师与学生信息。每个任务不仅强化了基本语法的应用,还涉及到了算法逻辑的设计与优化。实验结果显示,学生能够有效掌握并运用这些知识完成指定任务。
63 4
|
3月前
|
存储 安全 编译器
【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值(一)
【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值
|
3月前
|
存储 编译器 程序员
【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值(二)
【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值
|
4月前
|
存储 Go
Go: struct 结构体类型和指针【学习笔记记录】
本文是Go语言中struct结构体类型和指针的学习笔记,包括结构体的定义、成员访问、使用匿名字段,以及指针变量的声明使用、指针数组定义使用和函数传参修改值的方法。
|
5月前
|
存储 安全 编译器
C++入门 | auto关键字、范围for、指针空值nullptr
C++入门 | auto关键字、范围for、指针空值nullptr
87 4
|
5月前
|
存储 C语言
指针与结构体
指针与结构体
45 0
|
5月前
|
编译器 C语言 C++
【C++关键字】指针空值nullptr(C++11)
【C++关键字】指针空值nullptr(C++11)
|
3月前
|
C语言
无头链表二级指针方式实现(C语言描述)
本文介绍了如何在C语言中使用二级指针实现无头链表,并提供了创建节点、插入、删除、查找、销毁链表等操作的函数实现,以及一个示例程序来演示这些操作。
46 0
|
4月前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
168 4