pointer2.c

来自「嵌入式Linux C语言应用程序设计,华清远见嵌」· C语言 代码 · 共 34 行

C
34
字号
#include <stdio.h>

int main()
{
	int *p1, *p2, a, b;
	a = 1; b = 20;
	/*给p1,p2动态分配内存*/
	if((p1 = (int *)malloc(sizeof(int))) == NULL)
	{
		perror(malloc);
		return;
	}
	if((p2 = (int *)malloc(sizeof(int))) == NULL)
	{
		perror(malloc);
		return;
	};
	printf("a = %d, b = %d\n",a ,b);
	/*此时"*p1"、"*p2"的值还未初始化*/
	printf("*p1 = %d, *p2 = %d\n", *p1, *p2);
	printf("&a = 0x%x, &b = 0x%x\n",&a ,&b);
	/*注意此时,a、b的地址和p1、p2的地址是不同的*/
	printf("p1 = 0x%x, p2 = 0x%x\n", p1, p2);
	*p1 = b;
	*p2 = a;
	printf("after changing *p1, a also changed correspondingly......\n");
	/*此时a、b的值没有发生改变*/
	printf("a = %d, b = %d\n",a ,b);
	printf("*p1 = %d, *p2 = %d\n", *p1, *p2);
	free(p1);
	free(p2);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?