第四节课知识总结

define定义常量和宏

define定义常量

define定义常量,这里的常量就是指字面常量,只要是常量都可以定义,如:

#include <stdio.h>
#define MAX 25000
#define STR "Hello,CSDN"

像以上这两种,都是可以成功编译的,当然,还有其他的定义,就不一一阐述。

define定义宏

如:

#include <stdio.h>
#define MAX(x,y) ((x)>(y)?(X):(Y));

它等价于

MAX (int x,int y){
	int z=0;
	z=((x)>(y)?(x):(y));
	return z;
}

所以define定义宏和函数相比还是有一点不同的,这个它没有返回类型,并且"x","y"的类型也没有说明。当然define定义宏还有很多种,这里只是简单的了解一下。

指针

说起指针,大多数人都觉得这是一个很难攻克的东西,但是实际上,没有传言说的那么难,都是传言传的。
指针它与内存相关,了解了内存,指针才可以更好的理解。
在电脑里(以32位为例),一个内存单元是一个字节,同样一个内存单元有一个地址。(这里对为什么一个内存单元不是一个比特,kb,mb,而是一个字节进行简单的解释)

比如定义一个char a=‘b’,众所周知a占的内存是一个字节(前面的文章都提到了,什么Int,long的占的内存都有),而一个字节是8bit,所以如果一个内存单元是一比特的话,那么一个字符变量就需要8个地比特(地址),一个整形变量就需要4个字节,也就是32比特(地址),这对地址编号会浪费很多。同样的,一个内存单元是1kb,1mb的话就太大了,所以一个内存单元是一个字节。

定义指针的两种方法
  1. int* p=a,它表示的是定义了一个整型变量的指针p,里面存放的是a的地址
  2. int a=9;int* p;*p=&a;它表示的意思和上面是一样的
    在这里*是:*解引用操作符,它的意思是通过p里面存放的地址来找到p指向的内容
指针变量的大小

在32位平台里运行的结果是4,在64位平台运行的结果是8
这是64位
这是32位

差异的原因

先上图上课截的图这是32位平台的,在32位平台中,一个地址是由32个2进制数组成(8个16进制),而一个2进制数是1bit,所以一个地址也就占了4个字节(32bit=4byte)
同样在64位平台里,一个地址是由64个2进制数组成,所以一个地址也就占了8个字节(64bit=8byte)
这里对指针的简单理解就结束了

结构体

  1. 它的使用
    上图在这里插入图片描述
    使用的方法就跟上面一样,稍微了解一下就行,如果需要详细的讲解我后面的文章后讲到。
  2. 结构体的两种输出方法
    第一种:
    在这里插入图片描述
    第二种:在这里插入图片描述
    第二种是用函数输出的,不是我自己想的,所以我对第二个也不太熟悉,所以没有阐述
  3. 结构体的两种指向方法
    在这里插入图片描述这是函数指向
student1.name   

这是普通指向

  1. 输入结构体数据
    在这里插入图片描述
    简单说明一下,因为是数组名,所以上面的name,sex,hometown都没有取地址(因为数组名就是地址),而整型就需要取地址了(自己悟把)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值