指针热身——指针基础概念
Posted feng_kui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针热身——指针基础概念相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
int main(void)
{
//注:指针=地址,指针就是地址,地址就是指针,只是名字不同而已。
int * p; //p是变量的名字,int * 表示该变量p指向存放int类型变量的地址
//int * p; 不表示定义了一个变量为*p的整型变量,而是定义了一个int*类型的变量p
//int *p; 应该这样理解,定义了一个变量名p,他的类型是int*类型,实际上就是存放了一个类型为int的地址
int i=3;
// i是整型,因此指向变量i的指针变量p也必须是指向存放整型变量的地址。也就是说i是int类型,那么p就必须是int *类型。
p=&i;
/* 1、p保存了i的地址,也就是说p指向了i
2、p是个指针变量,而i是一个整型变量,故p不等于i,也就是说修改p的值不影响i的值,修改i的值不影响p的值
3、如果类型为int*的变量p指向了某个普通的变量,也就是说p保存了普通变量i的地址 *p 等价于 i :在程序当中出现*p的地方都可以用i来替换,出现i的地方都能够用*p来替换,*p与i 是完全等价相同的。
4、*p与p是俩表示的意思是完全不一样的。*p与i等价,p与&i完全等价。
*/
return 0;
}
/* 指针和指针变量:(指针是一个值(常量),指针变量是用来存放指针的.他是一个变量) 指针:指针就是一个地址,地址是存储变量内存单元的编号(一般都是16进制)。故指针他是一个值,当你定义一个变量的时候, 系统会自动分配一个内存单元,内存单元是用来存储变量的值。但是这个内存单元有一个编号,这个编号就是地址。也就是指针。
而指针变量:指针变量就是用来存储指针的,是一个变量。
比喻:酒店的房间606号房间。606就是该房间的编号,也就是地址。也是指针。你去开房就相当于给你分配了一个内存空间。而指针变量就是用来存放 房间号的,比如说有606,607,608等等。而房间里面的客人就是值,指针指向的值。
*/
/*
*p:我谈谈对*的理解: *: 降级的意思。也就是说有*的话,你可以理解成降级,p是地址,*p就是通过*进行降级,从内存单元的编号降级到内存单元里面的值。也就是地址 内的值。地址降级是值。行降级是列。p:地址,*p:降级是值,&(*p)=&i,
*/
以上是关于指针热身——指针基础概念的主要内容,如果未能解决你的问题,请参考以下文章
C语言基础:指针相关概念(指针的算术运算 指针数组指向指针的指针 传递指针给函数 从函数返回指针 )为啥C 语言不支持在调用函数时返回局部变量的地址?