69,373
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
int main()
{
int *p; //定义一个指针变量p,变量入栈
int *q; // 定义一个指针变量q,变量入栈
p=(int*)malloc(sizeof(int)); //在堆中开辟新的内存空间,p指向堆中的新空间的首地址
q=p;//q指针也指向p指针所指的堆内存地址
int m; //定义变量m,变量入栈
m=1; //栈中m的值赋值为1
p=&m; //p指针指向m在栈中的内存地址。
printf("%d",*q); // 打印q指针所指的堆中的内存中int类型的值。
return 0;
}
和
#include<stdio.h>
#include<stdlib.h>
int main()
{
int *p;
int *q;
p=(int*)malloc(sizeof(int));
q=p;
int m;
m=1;
*p=m; //p指针所指的堆中的内存 赋值为 栈中m内存中的值。 是堆内存的空间赋值为1了
printf("%d",*q); // 打印q指针所指的堆中的内存中int类型的值。
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main()
{
int *p;//定义一个指针变量p,变量入栈
p=(int*)malloc(sizeof(int));//在堆中开辟内存空间,栈中的p指向堆中的内存地址
int m;//定义一个int变量,变量入栈
m=1; //栈中m变量的内存的值赋值为1
*p=m;//修改栈中p所指向的堆中的内存的值为m内存中的值。
printf("%d",*p); //打印出的值与m相等,但是*p打印的是堆中内存的值,不是m所在栈内存的值
return 0;
}
和
#include<stdio.h>
#include<stdlib.h>
int main()
{
int *p;//定义一个指针变量p,变量入栈
int m;//定义一个int变量m,变量入栈
m=1; //m所在栈内存的值赋值为1
p=&m;// p指向m所在内存地址
printf("%d",*p); //打印p指针指向的m内存中的值
return 0;
}