1.5

指针

指针的基本概念 解引用操作符

内存是计算机中运行的程序的工作区,把内存分成一个一个很小的内存单元,每个内存单元的大小是一个字节内存是由很多个字节组成的,每个字节都有唯一的一个编号,这些编号称为该内存单元的地址32位电脑地址线有32根,2^32个内存单元,每个内存单元的大小是一个字节,所以内存大小是2^32个字节,按照提到过的换算单位,是4GB

int main()
{
	int a = 10;//向内存申请4字节,存储10,int型变量大小4字节
printf("%p\n", &a);//%p是用于打印void*类型的,为了确保其可移植性,建议将&a强制类型转换未void*型。
//printf("%p\n",(void*)&a);
int* p = &a;//p就是指针变量,把a的地址存到p里面//int*是变量类型 变量名叫p
//存放指针(地址)的变量就是指针变量
*p = 20; //解引用操作符,意思是通过p中存放的地址找到p所指向的对象,* p就是p指向的对象
printf("d\n", a);//20
char ch = 'w';
char* pc = &ch;
return 0;
}

a是int型变量,占了四个字节的大小,占了四个字节,也就是4个地址,&a是四位中的第一个地址

//4字节32比特位 //0000 0000 0000 0000 0000 0000 0000 0000 0000 1010 2进制

//0 0 0 0 0 0 0 0 0 a 16进制

内存中0x 00 00 00 0a 形式储存,监视中以倒序显示每次运行程序,a变量都会重新创建,故其地址每次运行结果不一样,进入调试模式后点击上方调试->窗口->内存/监视中查看

指针变量大小

int main()
{
	////int* p;
	////char* p2;
	////int* p1, p2, p3;//p1是指针变量,p2和p3是整型变量
	////int* p1, * p2, * p3;//p1,p2,p3都是指针变量 
/*此四行旨在表示指针变量的输入格式基本规则,无法运行*/
	////无论什么类型的指针都是在创建指针变量
	//指针变量是用来存放地址的
	//指针变量的大小取决于一个地址存放需要多大空间
	//32位及其地址:32bit位--4字节,所以指针变量大小是4字节
	//64位及其地址:64bit位—8字节,所以指针变量大小是8字节
	printf("%zu\n", sizeof(char*));   //上方x86是结果4字节,x64是8字节
	printf("%zu\n", sizeof(short*));  //都
	printf("%zu\n", sizeof(int*));    //是
	printf("%zu\n", sizeof(float*));  //一
	printf("%zu\n", sizeof(double*)); //样
	return 0;
}

结构体 struct

结构体 和 结构体指针操作符

面对复杂对象时,可以用结构体来描述C语言中给了自定义类型的能力,自定义类型中有一种叫结构体:struct结构体是把一些单一类型组合在一起的做法

struct Stu
{
	//结构体成员变量
	char name[20];
	int age;
	char sex[10];
	char tel[12];
};//创建了一个结构体类型Stu,相当于盖房子的图纸
int main()
{
struct Stu s = { "zhangsan", 20, "nan", "123456789" };//s是其中创建的一个变量
printf("%s %d %s %s\n", s.name,s.age,s.sex,s.tel);      //s是结构体变量,name是结构体成员变量
return 0;
}

struct Stu
{
	char name[20];
	int age;
	char sex[10];
	char tel[12];
};
void print(struct Stu* ps)//括号中的相当于一个结构体变量ps的地址,定义了一个无返回值的函数print
{
printf("%s %d %s %s\n", (*ps).name,(*ps).age,(*ps).sex,(*ps).tel); 
//ps是结构体指针,->是结构体指针操作符,ps->name等价于(*ps).name
printf("%s %d %s %s\n", ps->name, ps->age, ps->sex, ps->tel);
}
int main()
{
print(&s);
return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
吴offer选手:HR:我KPI到手了就行,合不合适关我什么事
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务