C语言指针基本概念及其指针变量的定义是什么
C语言
指针就是变量的地址;
指针变量就是存放变量地址的变量。
1、概念不同
“指针”是概念,“指针变量”是具体实现,指针也是一个变量,所以需要进行定义,而对于指针的定义,与一般变量一样。
2、 存放地址不同
一个变量的(内存)地址称为该变量的“指针”,通过指针能找到以它为地址的内存单元。而指针变量是用来存放另一个变量的地址的(即指针)。
扩展资料:指针和指针变量的关系
1、指针就是地址,地址就是指针。
2、地址就是内存单元的编号。
3、指针变量就是存放内存地址的变量。
4、指针和指针变量是两个不同的概念,但要注意的是,通常我们叙述时会把指针变量简称为指针,实际他们含义并不一样。
注:
指针里存的是100. 指针:地址 - 具体。
指针里存的是地址,指针:指针变量 -可变。
指针的好处:
1、直接访问硬件
2、快速传递数据(指针表示地址)
3、返回一个以上的值返回一个(数组或者结构体的指针)
4、表示复杂的数据结构(结构体)
5、方便处理字符串
6、指针有助于理解面向对象
1、比较point,*point,&point三者的区别
对于int * point;
point:是指针变量,其内容是地址量。
*point:是指针变量的目标变量,即指针指向的那个变量,其内容是数据。
&point:是指指针变量本身所占据的存储地址。
2、指针与数组
用指针和数组名在访问内存中的数据时,他们的表现形式是等价的,因为他们都是地址量。
数组名表示整个数组的首地址,可以看作是固定地址的指针,不能被赋值。
数组名无须赋初值,而指针在使用前必须赋初值。
3、字符指针和字符串
字符串是一个字符数组,字符串以‘\0’结束。printf函数的%s格式输出字符时,是从给定的地址开始,到遇上第一个‘\0’字符时结束。
对字符指针初始化,是将字符串的首地址赋给指针。
4、指针型函数
所谓指针型函数,即返回值是指针(地址)的函数。
5、多级指针
指向指针的指针(**p)就是二级指针,指向指针的指针的指针(***p)是3级指针。
多级指针类似于间接寻址。
6、指向函数的指针
C语言中的函数名表示函数的首地址,即函数执行的人口地址。
定义形式:[存储类型][数据类型标示符](*指向函数的指针变量名)();
例子: int(*fun)();//指向函数的指针 , int * fun(); //指针型函数,注意(* fun)括号不能少
7、动态指针
当需要一大片内存的时候,最好使用动态分配。
使用malloc函数:void * malloc(size_t size)。
例子:
int * pn=malloc(10*sizeof(int));
double *pd=malloc(10*sizeof(double));
我们知道变量在计算机内是占有一块存贮区域的,变量的值就存放在这块区域之中, 在计算机内部, 通过访问或修改这块区域的内容来访问或修改相应的变量。Turbo C语言中, 对于变量的访问形式之一,就是先求出变量的地址,然后再通过地址对它进行访问,这就是这里所要论述的指针及其指针变量。
所谓变量的指针, 实际上指变量的地址。变量的地址虽然在形式上好象类似于整数, 但在概念上不同于以前介绍过的整数, 它属于一种新的数据类型, 即指针类型。Turbo C中,
一般用指针来指明这样一个表达式&x的类型,而用地址作为它的值,也就是说, 若x为一整型变量, 则表达式&x的类型是指向整数的指针,而它的值是变量x的地址。同样, 若double d;则&d的类型是指向以精度数d的指针,而&d的值是双精度变量d的地址。所以,
指针和地址是用来叙述一个对象的两个方面。虽然&x、&d的值分别是整型变量x和双精度变量d的地址, 但&x、&d的类型是不同的, 一个是指向整型变量x的指针, 而另一个则是指向双精度变量d的指针。在习惯上,很多情况下指针和地址这两个术语混用了。
我们可以用下述方法来定义一个指针类型的变量。
int *ip;
首先说明了它是一指针类型的变量,注意在定义中不要漏写符号*,否则它为一般的整型变量了。另外,在定义中的int 表示该指针变量为指向整型数的指针类型的变量, 有时也可称ip为指向整数的指针。ip是一个变量, 它专门存放整型变量的地址。
指针变量的一般定义为:
类型标识符 *标识符;
其中标识符是指针变量的名字, 标识符前加了*号,表示该变量是指针变量, 而最前面的类型标识符表示该指针变量所指向的变量的类型。一个指针变量只能指向同一种类型的变量, 也就是讲, 我们不能定义一个指针变量, 既能指向一整型变量又能指向双精度变量。
指针变量在定义中允许带初始化项。如:
int i, *ip=&i;
注意, 这里是用&i对ip初始化, 而不是对*ip初始化。和一般变量一样,对于外部或静态指针变量在定义中若不带初始化项, 指针变量被初始化为NULL, 它的值为0。Turbo C中规定, 当指针值为零时, 指针不指向任何有效数据, 有时也称指针为空指针。因此, 当调用一个要返回指针的函数时(以后会讲到), 常使用返回值为NULL来指示函数调用中某些错误情况的发生。
指针是C语言中广泛使用的一种数据类型。
利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。
如:int *p1;表示p1是一个指针变量,它的值是某个整型变量的地址。
C语言指针详解
理解复杂类型的核心在于了解各种运算符的优先级以及它们如何结合解析类型,从变量名开始逐步分析。首先从简单的类型入手,这些基本类型理解后,处理更复杂的类型就变得轻松许多。使用简单的类型通常能保持程序的可读性,避免不必要的复杂性。深入解析指针的四个关键要素:指针类型、指针所指向的类型、指针值、...
在C语言中什么是指针
指针是C语言里面的一个重要概念,也是C语言的难点之一.指针可以表示许多复杂的数据结构,如队列,栈,链表,树,图等.要学习指针,应该先了解以下几个概念:变量的地址,变量的内容,直接寻址,间接寻址.变量的地址:变量在内存中所占存储空间的首地址.变量的内容:变量在内存的存储单元中存放的数据.如:int a=10...
C语言中,指针的意思是什么?FAR指针又是什么?
3.int ptr;\/\/指针所指向的类型是int 4.int(ptr)[3];\/\/指针所指向的类型是int()[3]5.int(ptr)[4];\/\/指针所指向的类型是int()[4]。在指针的算术运算中,指针所指向的类型有很大的作用。指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C语言越来越熟悉时,你会发现...
什么是指针?
CPU)中寄存器(Register)【用来指向该内存地址所对应的变量或数组】。指针一般出现在比较接近机器语言的语言,如汇编语言或C语言。面向对象的语言如Java一般避免用指针。指针一般指向一个函数或一个变量。3、另外,指针也指钟表中用来指示对应时间的部件。
c语言全面解析指针,十个知识点整理
C语言10个小知识了解指针 1.若有代码,int a=10,*p;p是指针:也是一个变量,且是一个只能用来存放地址的变量。2.若有代码,int a=10,*p;p=&a;当执行了上面的代码,会说“p指向了a”,其实就是“p指针变量存放了a的地址”。3.两个*的区别,有如下代码:inta=10,*p;\/\/该处的* 说明p是...
什么是C语言的指针,能不能举例说明一下啊?大侠帮帮忙!!
(5)int*(*ptr)[4];\/\/指针所指向的的类型是int*()[4] 在指针的算术运算中,指针所指向的类型有很大的作用。 指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C越来越熟悉时,你会发现,把与指针搅和在一起的"类型"这个概念分成"指针的类型"和"指针所指向的类型"两个概念,是精通指针...
c语言中的指针是什么?
表示成员选择(指针),选择结构体的成员变量。1、结构:运算符 -> 是指向结构体成员运算符,结合方向为自左向右。2、用法:对象指针->成员名。举例说明如下:
c语言指针是什么意思!
指针其实是一个整形变量,与其它数据不同的是,它的作用是用来存储其它变量的地址。指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。
C语言中“指针”和“指针变量”的区别是什么??
1、概念不同 “指针”是概念,“指针变量”是具体实现,指针也是一个变量,所以需要进行定义,而对于指针的定义,与一般变量一样。2、 存放地址不同 一个变量的(内存)地址称为该变量的“指针”,通过指针能找到以它为地址的内存单元。而指针变量是用来存放另一个变量的地址的(即指针)。
C语言中指针是指的什么?
1.指针就是1个变量,他也是一个存放内容的内存空间。2.指针存放的内容是另一个内存空间的起始地址。不同于一般变量存放的就是变量值。3.取值操作符*对于指针的作用是取得指针变量存放的内存地址里面的值,不加*取出的是指针变量存放的值(就是一个内存地址)
旗鸣思为: 指针是常见间接访问方式.指针就像一个快捷方式,它指向内存的一个地址,可以通过指针就可以间接的访问到数据.对于计算机,访问内存的方式有两种,直接访问和间接访问.直接访问通过就是通过变量名称去访问.指针概念是构成C/C++的...
红原县19140014374: c语言指针的概念 - ?
旗鸣思为: 指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序.指针极大地丰富了C...
红原县19140014374: C语言指针的定义 - ?
旗鸣思为: 指针就是地址.你说的是指针变量.整形变量,浮点变量,字符变量,指针变量.通过起名的规律就知道指针变量是储存地址的.指针变量和其他变量的用法一样,作用域一样.在一个子涵数中定义指针变量,是局部变量,其他函数是不能用的.不要把指针变量想的太复杂,地址(指针)也是数据,和其他字符数据,整形数据一样,没什么差异.当然,全局变量的指针变量当然可以多函数使用.指针的定义:地址.指针变量的定义:存储指针的变量.
红原县19140014374: C语言中指针是什么? - ?
旗鸣思为: 1.指针就是1个变量,他也是一个存放内容的内存空间. 2.指针存放的内容是另一个内存空间的起始地址.不同于一般变量存放的就是变量值. 3.取值操作符*对于指针的作用是取得指针变量存放的内存地址里面的值,不加*取出的是指针变量存放的值(就是一个内存地址)上面3步,step by step 你就理解了.
红原县19140014374: C语言中对指针的理解与举例子 - ?
旗鸣思为: 首先你要知道指针是一个变量,所以它具有普通变量的性质.比如你int a.a是一个变量.当你创建的时候,系统就会分配给他一个地址空间,它的长度是四字节的.你可以给这个变量a赋任何小于4字节的大小.指针也一样.它也有地址.它也...
红原县19140014374: C语言中指针的概念和用法? - ?
旗鸣思为: 指针好比一把钥匙,原本你打开一个文件只要有这个文件的地址就行,但为了安全你可以吧文件的地址放在保险柜里,而保险柜的钥匙就是指针.指针怎么用,当然是先定义指针变量,再将一个存储区域的地址赋给这个指针变量,如:int a,*p;p=&a;那么*p==a了.*是指向的意思
红原县19140014374: 关于C语言中的指针?
旗鸣思为: 首先,指针是指一个指向某一变量内存地址的一个指针变量(也算是一种变量,与普通变量不同的是,它是存放另一个变量的内存地址,也就是一个指针型的变量). 其次,指针变量的值是存放的是另某个变量的内存地址. 例如: int a=10;//假如a的内存地址为0x00000012(不定的) int *p;//定义一个指针变量p *p = &a;//把变量a的内存地址赋值给指针变量p,既p=0x00000012 int b;//定将一个b b = *p; //即b值为p所指的内存地址的值,就是内存地址为0x00000012的值,相当于b=a;所以这里b=10
红原县19140014374: c语言中指针变量怎么理解?怎么用? - ?
旗鸣思为: 指针变量是一个变量,它保存的是另一个变量的内存地址.你如果知道了这个指针变量保存的值,就可以知道它所指向变量的内存地址,于是就可以间接访问到那一个变量.定义:指针变量类型 *指针变量名1, *指针变量名2, ... ; 例如:int ...
红原县19140014374: C语言 关于指针变量的概念 急急急 - ?
旗鸣思为: 只能给指针赋值地址.指针变量顾名思义就是指向某个地址的变量,所以指针其实就是个地址.你把1000赋给p,那么其实是把地址1000给了p,但是1000这个地址存的是什么东西,没人知道,可能是某段文字中的一个字母,某个表中的一个数字,可能是系统里面一个很重要的文件开头,可能是任何东西.int *p; p=1000; //错的 int i=10; int *p; p=&i; //把ide地址给p
红原县19140014374: C语言里的指针是什么意思,起什么作用 - ?
旗鸣思为: 1:指针是一个地址,指向的是个类型: 我们知道,c语言中的类型有int,char,bool(这个不常用),一般我们使用int,char就可以满足一般的类型需求的,如果对于变量的长度过大,就是用long ,float,double,关于各个类型使用的的长度问题,可以使...