[C语言]指针与结构体简介

指针与结构简介

Gitee地址

Github地址

CSDN地址

1:指针

32位:—32根地址线—物理线—通电–产生1/0

将电信号转换成数字信号:1和0组成的二进制序列

Bit–Byte–Kb–MB–GB–TB–PB

内存单元:2*32次方个内存单元

bit / 8=Byte,Byte /1024 =Kb, MB / 1024 =MB, MB / 1024 = GB

char =1byte =8 bit =8 个地址

最终一个内存单元还是一个字节

#include <stdio.h>
int main()
{
	int a = 10; //a在内存中要分配的空间 --4个字节
	printf("%p\n",&a); //用来打印地址  
	int * pa = &a; //pa用来存放地址,在c语言中pa叫指针变量
	//*说明是pa的指针变量
	// int说明pa执行的对象是int类型
	char ch = 'w';
	char * pc = &ch;
	return 0; 
}
#include <stdio.h>
int main()
{
	int a = 10;
	int* pa = &a;
	*pa = 20; //*解引用操作, *pa就是通过pa里边的地址,找到a
	printf("%d\n",a);   //结果为20
	return 0;
}

指针的大小

#include <stdio.h>
int main()
{
	printf("%d\n",sizeof(char*));
	printf("%d\n",sizeof(short*));
	printf("%d\n",sizeof(int*));
	printf("%d\n",sizeof(long*));
	printf("%d\n",sizeof(long long*));
	printf("%d\n",sizeof(float*));
	printf("%d\n",sizeof(double*));
	return 0;
}
//对于32位平台,结果为4
//对于64位平台,结果为8

指针需要多大的空间,取决于地址的存储需要多大空间

2:结构体

结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。

结构体可以让c语言创建新的类型出来

struct:结构体类型

#include <stdio.h> 

struct Stu  //创建一个学生
{	
	char name[20];
	int age;
	double score;
};

int main()
{
	struct Stu s={"张三",20,85.5};  // 结构体的创建和初始化
	printf("1: %s %d %lf\n",s.name,s.age,s.score);  //结构体变量,成员变量,lf打印双精度浮点数

	struct Stu * ps = &s;  //存储变量
	printf("2: %s %d %lf\n",(*ps).name,(*ps).age,(*ps).score);  //解引用变量,使用变量进行引用

	printf("3: %s %d %lf\n",ps->name,ps->age,ps->score);  //使用变量,利用->操作符进行引用,左边为结构体指针->成员变量名

	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值