初识C语言——认识指针和结构体的一天

大家好,我是灰帽小张。今天是我学习打卡的第五天,这五天的时间,我主要是通过B站的学习初步认识了C语言,也在视频结束后,自己敲了一遍代码,感觉有时候会很懵,哎,加油吧!!得学啊!

一、认识指针:

a.分清p和*p:

//内存会划分为一个个内存单元,每一个内存单元就是一个byte(字节)每个内存单元都有一个编号,即地址(指针)。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() 
{
	int a = 10;//向内存申请4个字节,存储10.
	printf("%p\n", &a);//&取地址操作符,输出结果实时变化,因为运行程序才会申请内存,因为本台电脑64位,内存大小为2的64次方byte,即8G,输出结果为16进制
	&a;//地址:0x0000008C9EAFFC44内存中的数据(倒着存的,16进制,10即a):0a 00 00 00 40  不准确的内存数据的文本解析:....@
	int* p = &a;//p为指针变量,用以存储地址(指针)的变量叫做指针变量。p=0x0000008C9EAFFC44
	//int说明p指向的对象是int类型的。*说明p是指针变量;
	char b = 'w';
	char* pc = &b;//因为b的类型是char,所以此时写作char* 

	*p = 30;//解引用操作符,意思就是通过p中存放的地址,找到p所指向的对象。*p就是p指向的对象。
	printf("%d", a);//*P就是p指向的对象a,所以此时a的值发生了变化,由10变为了30.
	return 0;
}

此时a由10变为了30.
image.png

b.指针变量的大小:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
	//int*p;
	//char*p2;
	//不管是什么类型的指针,都是在创建变量;
	//指针变量是用来存放地址的;
	//指针变量的大小取决一个地址存放的时候需要多大的空间;
	//32位机器上的地址:32bit位--4byte,所以指针变量的大小是4个字节;
	//64位机器上的地址:64bit位--8byte,所以指针变量的大小是8个字节;
	printf("%zu\n", sizeof(int*));
	printf("%zu\n", sizeof(char*));
	printf("%zu\n", sizeof(float*));
	printf("%zu\n", sizeof(short*));
	printf("%zu\n", sizeof(double*));
	return 0;
}

image.png

二、认识结构体:

因为生活中有很多复杂类型,不能用int等数据类型表示,因此需要结构体。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
struct Student {
	char name[20];//成员
	int age;
	char sex[20];
	char tele[20];
};
void print(struct Student*ps) {
	printf("%s %d %s %s\n", (*ps).name, (*ps).age, (*ps).sex, (*ps).tele);
	//结构体指针变量->成员名  访问结构体
	printf("%s %d %s %s\n", ps->name, ps->age, ps->sex, ps->tele);
}
int main() 
{
	struct Student s = {"张三",18,"男","11111111111"};
	//结构体对象.成员名
	//printf("%s %d %s %s",s.name,s.age,s.sex,s.tele);
	print(&s);
	return 0;
}

image.png

结束语:

到这里了,初识C语言部分就结束了,整个部分的学习大概用了我五天的时间,接下来才是重点了,期待我下一回的博客吧!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值