您的位置:首页 > 编程语言 > C语言/C++

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

2015-11-30 15:18 316 查看
指针也是一种变量,占有内存空间,用来保存内存地址
测试指针变量占有内存空间大小

*p操作内存

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

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

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

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

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

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

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

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

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

//含义4 =左边char
*p

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

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

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

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

结论:指针的步长,根据所指内存空间类型来定。

注意: 建立指针指向谁,就把把谁的地址赋值给指针。图和代码和二为一。

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

#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");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: