C语言的指针
我们在使用c语言进行编写程序的时候,就一定会使用上指针,指针的操作是编写程序的一个点。
这里,小编就分享一下自己在使用c语言编程过程中,对于指针的理解:
系统为每一个内存单元分配一个地址值,C/C++把这个地址值称为“指针”。如有int i=5;,存放变量i的内存单元的编号(地址)&i被称为指针。
指针变量”则是存放前述“地址值”的变量,也可以表述为,“指针变量”是存放变量所占内存空间“首地址”的变量(因为一个变量通常要占用连续的多个字节空间)。比如在int i=5;后有一句int *p=&i;,就把i的指针&i赋给了int *型指针变量p,也就是说p中存入着&i。所以说指针变量是存放指针的变量。
有一个事实值得注意,那就是有不少资料和教科书并没有如上区分,而是认为“指针是指针变量的简称”,如对int *p=&i;的解释是:声明一个int *型指针p,并用变量i的地址初始化;而严格说应该是声明一个int *型指针变量p才对。所以有时看书要根据上下文理解实质,而不能过于拘泥于文字表述。
1:指针是一个地址,指向的是个类型:
我们知道,c语言中的类型有int,char,bool(这个不常用),一般我们使用int,char就可以满足一般的类型需求的,如果对于变量的长度过大,就是用long ,float,double,关于各个类型使用的的长度问题,可以使用sizeof(int)或者sizeof(long)来查看各个类型,在系统中的小。
而指针就是一个8个字节(64系统)。
2:指针指向的是地址,地址指向的是内容:
我们需要一个变量,来存储地址,这个变量的值是地址,但是我们可以通过修改变量的.值,来不断的改变地址,但是,我们如果需要改变该个地址的值的话,就需要,对地址的值进行修改,而不改变地址。
int a = 10;
int *p ;
p = &a;
*p =11;
a=?
这里我们看到,p 是一个变量,我们使用p来存储变量a的地址,这是,我们使用*p对于这个变量进行赋值,那么a的值最后,是多少呢,结果是11,因为我们使用*p赋值,就相当于a=11,赋值效果一样的。
3:指针的指针,是面对于指针的变量:
我们说,指针的指针的时候,就有点不清楚了,到底怎么区分指针和指针的指针呢。
char *p;
char **pr;
pr = &p;
我们这样看就清楚了一点,char *(*pr); *pr是一个存储的值为指针的变量,pr就是存储上个变量地址的变量。整合起来就是,pr是一个存储的值为指针的地址的变量。
这样,我们就基本,对于指针有一个直接的了解了。
-
2017年计算机二级考试C语言备考题及答案
计算机二级对于很多考生来说还是比较有难度的,那么怎样顺利通过二级考试呢?这就需要大家平时多练习和找方法了。以下是本站小编整理的2017年计算机二级考试C语言备考题及答案,希望对大家有帮助!1.(A)是构成C语言程序的基本单位。A、函数B、过程C、子程序D、子例...
-
C语言基础循环结构
引导语:循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构。以下是本站小编分享给大家的C语言循环结构,欢迎阅读学习!1.1for循环结构循环语句的一般表达式是:for(表达式1;表达式2;表达式3)语句2....
-
2017计算机二级C语言备考训练题
在复习阶段多做练习可以帮助我们巩固知识和提高做题速度以及掌握做题技巧等。下面是应届毕业生考试网小编为大家整理的2017年计算机二级C语言备考训练题,希望可以帮助到大家的学习!一、填空题(1)算法的基本特征是可行性、确定性、______和拥有足够的情报。答:有...
-
C++跳转语句之Goto对变量定义的影响详解
goto语句也称为无条件转移语句,以下是为大家分享的C++跳转语句之Goto对变量定义的影响详解,供大家参考借鉴,欢迎浏览!前言goto语句也称为无条件转移语句,其基本形式如下:语句标号由一个有效地标识符和符号";"组成,其中,标识符的命名规则与变量名称相同,即由字母、数字...