【C语言提高07】【指针铁律】铁律1:指针是一种数据类型

  1. 指针也是一种变量,占有内存空间,用来保存内存地址

    测试指针变量占有内存空间大小

  2. *p操作内存

    在指针声明时,*号表示所声明的变量为指针

    在指针使用时,*号表示操作指针所指向的内存空间中的值

            *p相当于通过地址(p变量的值)找到一块内存;然后操作内存

            *p放在等号的左边赋值(给内存赋值)

            *p放在等号的右边取值(从内存获取值)

  3. 指针变量和它指向的内存块是两个不同的概念

    //含义1p赋值p=0x1111;只会改变指针变量值,不会改变所指的内容;p = p +1; //p++

    //含义2*p赋值*p='a';不会改变指针变量的值,只会改变所指的内存块的值 

    //含义3 =左边*p表示给内存赋值, =右边*p表示取值含义不同切结!

    //含义4 =左边char *p

    //含义5保证所指的内存块能修改

  4. 指针是一种数据类型,是指它指向的内存空间的数据类型 

    含义1:指针步长(p++),根据所致内存空间的数据类型来确定

    p++=è(unsigned char )p+sizeof(a);

    结论:指针的步长,根据所指内存空间类型来定。
  5. 注意:    建立指针指向谁,就把把谁的地址赋值给指针。图和代码和二为一。        

                     不断的给指针变量赋值,就是不断的改变指针变量(和所指向内存空间没有任何关系)。

   

#include<stdio.h>
#include<string.h>
#include<stdlib.h>


   //指针做函数参数   形参有多级指针的时候
   //站在编译器的角度:只需要分配4字节的内存(32bit平台上)
   //只有当我们使用内存的时候   我们才关心指针指向的内存 是一维的还是二维的

void main()
{
        //1.指针是一种数据类型   
	//   指针也是一个变量 占有内存空间,用来保存内存地址


	//在指针声明时,*号表示所声明的变量为指针
        //在指针使用时,*号表示 操作 指针所指向的内存空间中的值

	//*p相当于通过地址(p变量的值)找到一块内存;然后操作内存
        //*p放在等号的左边赋值(给内存赋值)
        //*p放在等号的右边取值(从内存获取值)

	//*相当一把钥匙  通过一个地址(&a) 去修改a变量标示的内存空间
	int a = 10;

	//不断的给指针赋值   相当于不停的改变指针的指向
	//指针是一种数据类型,是指 它指向的内存空间的 数据类型  
	//含义1:指针步长(p++),根据所致内存空间的数据类型来确定
	//结论:指针的步长,根据所指内存空间类型来定
	 int* p3 = NULL;
	 p3 = &a;
	*p3 = 20;

	//int* p1 = 100;//只是告诉编译器分配四个字节的内存
	system("pause");
}













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值