C语言-常量与指针

  • 2020-10-06
  • 0
  • 0

一、常量与变量

1.常量不可以改变

2.变量可以被改变

3.const关键字可以将变量改为常量

#include <stdio.h>
int main()
{
	int num = 520;
	const int cnum = 888;
	const int *pc = &cnum;

	printf("cnum: %d, &cnum: %p\n", cnum, &cnum);
	printf("*pc: %d, pc: %p\n", *pc, pc);
	return 0;
}
//const字符将变量改为了常量不能被修改

二、指向常量的指针

—指针可以修改为指向不同的常量

—指针可以修改为指向不同的变量

—可以通过解引用来读取指针指向的数据

—不可以通过解引用修改指针指向的数据

#include <stdio.h>
int main()
{
	int num = 520;
	const int cnum = 888;
	const int *pc = &cnum;

	printf("cnum: %d, &cnum: %p\n", cnum, &cnum);
	printf("*pc: %d, pc: %p\n", *pc, pc);
	
	*pc = #
	printf("*p %d",*pc);
	return 0;
}
修改常量将会出错
//但是能够改变指针的指向
#include <stdio.h>
int main()
{
	int num = 520;
	const int cnum = 888;
	const int *pc = &cnum;

	printf("cnum: %d, &cnum: %p\n", cnum, &cnum);
	printf("num: %d, &num: %p\n", num, &num);
	printf("*pc: %d, pc: %p\n", *pc, pc);
	
//	*pc = num;
//	printf("*p %d",*pc);
	pc = #
	printf("*pc: %d, pc: %p\n",*pc, pc);

	return 0;
}
这样是没问题的
int main()
{
	int num = 520;
	const int cnum = 888;
	const int *pc = &cnum;

	printf("cnum: %d, &cnum: %p\n", cnum, &cnum);
	printf("num: %d, &num: %p\n", num, &num);
	printf("*pc: %d, pc: %p\n", *pc, pc);
	
//	*pc = num;
//	printf("*p %d",*pc);
	num = 1024;
	pc = #
	printf("*pc: %d, pc: %p\n",*pc, pc);

	return 0;
}
//可以修改变量的值
可以修改指针指向的变量的值

三、常量指针

指向非常量的常量指针

—指针自身不可被修改

—指针指向的值可以被修改

//常量指针
#include <stdio.h>
int main ()
{
	int num = 520;
	const int cnum = 1024;
	int * const p = #

	*p = 1024;
	printf("*p; %d\n", *p);

	p = &cnum;
	printf("*p: %d\n",*p);

	return 0;

}
指针自身不可被修改
指针指向的值可以被修改

四、指向常量的常量指针

-指针自身不可被修改

-指针指向的值也不可以被修改

五、指向“常量的常量指针”的指针


#include <stdio.h>
int main ()
{
	int num = 520;
	const int cnum = 1024;
	const int * const p = #//指向常量的常量指针
	const int * const *pp = &p;//指向“常量的的常量指针”的指针
	
	
	printf("pp: %p, &p: %p\n",pp, &p);
	printf("*pp: %p, p: %p, &num: %p\n",*pp, p, &num);
	printf("**pp: %d, *p: %d, num: %d\n",**pp, *p, num);


	return 0;

}

评论

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