基本类型指针

指针【C语言第二个难点】

指针的重要性:C语言的灵魂

    表示一些复杂的数据结构
    快速的传递数据,减少了内存的耗用
    使函数返回一个以上的值
    能直接访问硬件
    能够方便的处理字符串
    是理解面向对象语言中引用的基础

指针的定义

地址:

  内存单元的编号
  从零开始的非负整数
  范围:4G 【0--4G-1】

指针和指针变量

1、指针就是地址,地址就是指针
2、地址就是内存单元的编号、指针变量是存放地址的变量
3、指针和指针变量是两个不同的概念,
但是要注意通常我们叙述时会把指针变量简称为指针,实际他们含义并不一样

指针的本质就是一个操作受限的非负整数

基本类型指针【重点】

{
	int * p;   // p是变量的名字,int * 表示 p变量存放的是 int 类型变量的地址 
	          // int *p; 不表示定义了一个名字叫做 *p 的变量
			 // int *p; 应该这样理解: p 是变量名,p变量 的数据类型是 int * 类型
			//  所谓 int * 类型 实际就是存放 int 变量地址的类型 
	
    int i = 3;
    int j;
	p = &i;
/*
	1、p 保存了 i 的地址,因此 p 指向 i
	2、p 不是 i,i 也不是 p,更准确地说,修改 p 的值,不影响 i 的值,修改 i 的值也不影响 p 的值 
	3、如果一个指针变量指向了某个普通变量,则
			* 指针变量    就完全等同于  普通变量 
		例子:
			如果 p是个指针变量,并且p存放了普通变量 i 的地址
					   则 p 指向了普通变量 i
					      *p 就完全等同于 i 
			或者说: 在所有出现 *p 的地方都可以替换成 i 
					在所有出现 i 的地方都可以替换成 *p
				      *p 就是以 p 的内容为地址的变量 
*/
	
   j = *p;    // 等价于 j = i; 
   printf("i = %d,j = %d\n",i,j); 
   
	return 0;
}

附注:

 *的含义:
        1、乘法
        2、定义指针变量
    int * p;    //定义了了一个名字叫 p 的变量,int *表示p只能存放int 变量的地址
        3、指针运算符
               该运算符放在已经定义好的指针变量的前面
               如果 p 是一个已经定义好的指针变量,
                则 *p 表示以p 的内容为地址的变量

如何通过被调函数修改主调函数普通变量的值

     1、实参必须为该普通变量的地址
     2、形参必须为指针变量
     3、在被调函数中通过
               * 形参名 = ……
     的方式就可以修改主调函数相关变量的值
posted @ 2022-06-29 16:38  柯星  阅读(15)  评论(0编辑  收藏  举报  来源