基本类型指针

指针【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、在被调函数中通过
               * 形参名 = ……
     的方式就可以修改主调函数相关变量的值
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值