C语言-初识指针

  • 2020-09-29
  • 0
  • 0

一、指针的定义

/*定义指针变量
类型名 *指针变量名
char *pa;//指向字符型变量
int *pb;//指向整型的指针变量

取值运算符(&),和取址运算符(*)
*/
#include <stdio.h>
int main()
{
	char a = 'w';
	int f = 520;
	char *pa = &a;
	int *pb = &f;
	printf("a = %c\n", *pa);
	printf("f = %d\n", *pb);
	*pa = 'l';
	*pb += 1;
	printf("a = %c\n",*pa);
	printf("b = %d\n",*pb);

	return 0;
}
//注意:避免访问未初始化的指针!

二、代码实验

int main()
{
	int a;
	int *p = &a;

	printf("请输入一个整数:");
	scanf("%d",&a);
	printf("a = %d\n", a);
	printf("请重新输入一个整数:");
	scanf("%d",p);
	printf("a = %d\n",a );

	return 0;

}

三、验证数组名就是第一个数据的地址

//数组名就是第一个数据的地址。
#include <stdio.h>
int main()
{
	char a[] = "wang";
	int b[5] = {1,2,3,4,5};
	float c[5] = {1.1,2.2,3.3,4.4,5.5};
	double d[5] = {1.1,2.2,3.3,4.4,5.5};

	printf("a[0] -> %p, a[1] -> %p, a[2] -> %p\n", &a[0], &a[1], &a[2]);
	printf("b[0] -> %p, b[1] -> %p, b[2] -> %p\n", &b[0], &b[1], &b[2]);
	printf("c[0] -> %p, c[1] -> %p, c[2] -> %p\n", &c[0], &c[1], &c[2]);
	printf("d[0] -> %p, d[1] -> %p, d[2] -> %p\n", &d[0], &d[1], &d[2]);
	return 0;
}

评论

还没有任何评论,你来说两句吧