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

#include 
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  
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 是一个指针,所以不能使用 .号 访问内部成员,而要 使用->。

你可能感兴趣的:(非常乱的笔记,c语言,开发语言)