C语言指针结构体一些问题

2023-12-20 18:52:25
#include <bits/stdc++.h>
using namespace std;
typedef struct AAA{
	int x1;
	float x2;
}Q;
int main()
<%
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	Q k1;
	Q k2;
	
	k1.x1 = 99;
	k1.x2 = 98.34F;
	
	k2.x1 = 77;
	k2.x2 = 87.34F;
	//初始化完毕
	
	Q* m1 = &k1;
	Q* m2 = &k2;
	
	m1 -> x1 = 75;
	m1 -> x2 = 33.2F;
	
	m2 -> x1 = 55;
	m2 -> x2 = 11.3F;
	
	return 0;
%>
#include <stdio.h> 
int main() 
{ 
 int a=10; 
 int *p; //定义?个指针p 
 p=&a; //指针p获取变量a的地址
 printf("%d",*p); //输出指针p所指向的内存中的值
 getchar();getchar(); 
 return 0; 
} 

????????这里 printf 语句里面*p 中的*号叫做间接运算符,作用是取得指针 p 所指向的内存中的 值。在 C 语言中*号有三个用途,分别是:

  1. 乘号,用做乘法运算,例如 5*6。
  2. 申明一个指针,在定义指针变量时使用,例如 int *p;
  3. 间接运算符,取得指针所指向的内存中的值,例如 printf("%d",*p);

在程序中存储一个整数 10,除了使用 int a;这种方式在内存中申请一块区域来存储,还有另外一种动态存储方法

malloc(4);
int *p; 
p=(int *)malloc(sizeof(int));

上面的代码中我们发现了一个很奇怪的符号“->”。->叫做结构体指针运算符,也是用 来访问结构体内部成员的。因为此处 p 是一个指针,所以不能使用?.号 访问内部成员,而要 使用->。

文章来源:https://blog.csdn.net/SHI_56/article/details/135111661
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。