指针的指针是什么?有关C语言指向指针的指针

本文目录
- 指针的指针是什么
- 有关C语言指向指针的指针
- C语言:结构体内的成员(指针)的赋值问题
- c语言中指针的指针会等于0吗
- Delphi指针的指针怎么表示
- 指针和指针的指针还有指针的引用的作用分别是什么啊
- 什么叫“指针变量指向的变量”
- 变量的指针和指针变量概念分别是什么
- 怎么定义指向一个数组指针的指针比如:我要指向于 int *A[] = {“A“,“B“};
- 关于一个c语言结构体指针成员的问题
指针的指针是什么
指针
在信息工程中指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中寄存器(Register)。指针一般出现在比较近机器语言的语言,如汇编语言或C语言。
面向对象的语言如Java一般避免用指针。指针一般指向一个函数或一个变量。
在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的变量或函数的值。
指针与C语言
大家都认为,c语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。
因此,说指针是c语言的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有C语言的指针才能算指针。
basic不支持指针,在此不论。其实,pascal语言本身也是支持指针的。
从最初的pascal发展至今的object pascal,可以说在指针运用上,丝毫不会逊色于c语言的指针。
有关C语言指向指针的指针
指针变量能指向任意一个变量(包括指针变量)
指向指针的指针定义方法 ,例如int **p; 定义了一个指针变量p,他指向另一个指针变量(该指针变量又指向一个整型变量),是一个2级指针,由于指针运算符*是按自右向左顺序结合,因此上述定义相当于:int *(*p); (*p)是指针变量形式,它外面的*表示p指向的又是一个指针变量,int表示后一个指针变量指向的是指针变量
怎样使一个指针变量指向另一个指针变量呢?
int **p1;
int *p2;
int i=3;
p2=&i (使p2指向i)
p1=&p2 (使p1指向p2)
C语言:结构体内的成员(指针)的赋值问题
虽然定义了p2指针,但是没有给p2赋值,故直接使用没有明确指向的指针,则会导致内存方面的错误
c语言中指针的指针会等于0吗
假如有一个指针P,语句if(p==0);和语句if(p==NULL)是同一个意思,其实NULL 就是 一个 为0 的宏。可能你提问的方式会让很多人不懂,估计你就是想要我说的这个意思的吧。
Delphi指针的指针怎么表示
只要这样就可以了type
Pint
=
^integer;
PPint
=
^Pint;PPint就是integer指针的指针其他的一样.delphi中使用指针必须先定义类型,否则类型不相容比如i:
^integer;k:
^integer;i与k的类型是不相容的必须这样i:
Pint;k:
Pint;
指针和指针的指针还有指针的引用的作用分别是什么啊
指针 就是一个地址,不过是带类型的。 比如int *p, p里面存的是一个地址,*p是一个int型。
你可以认为指针就是一个门牌号,可以找到对应的东西。
指针的指针,其实还是指针。只不过指向内存区域里面存的类型有些特殊,是另外一个指针。
想简单一些,和其他的没什么区别。
指针的引用,就是一个指针变量的别名。 和单纯的指针,没任何区别。
什么叫“指针变量指向的变量”
用语言表达得说好几句,举个例子最实惠。若有int x=3,*p=&x这样的定义,那么,x就是指针变量p指向的变量。
变量的指针和指针变量概念分别是什么
指针可以了解为是指存放变量的地址,你想要找到这个变量可以通过找到它存放的地址(即它放在哪)来寻找;变量是变化的量,没有固定的值,可以根据自己的需要来赋值,比如可以赋为1或2等等,这样变量的指针和指针变量就不难理解了。希望能对你有帮助。
怎么定义指向一个数组指针的指针比如:我要指向于 int *A[] = {“A“,“B“};
指针数组是一种特殊的数组,指针数组的数组元素都是指针变量。指针数组的定义格式为:
类型名称 *数组名称;
例如:float *pf;
因为下标运算符);
说明pf是一个含有3个元素的数组,数组元素为指向float型变量的指针变量。
又如:
int *pn; /*定义一个5个元素的指针数组,数组元素为指向int型变量的指针变量*/
char *pc; /*定义一个10个元素的指针数组,元素为指向char型变量的指针变量*/
不论指针数组是什么类型,指针数组的每个数组元素都用来保存一个地址值,在TurboC下,每个数组元素是一个unsigned int型变量,占用2个字节。
指针数组定义后,可以使数组元素指向一个变量和其他数组的首地址。下面是一个指针数组定义和引用的例子。
main()
{
int i;
char c1="How";
char c2="are";
char *c3="you";
char *pArray;
pArray=c1;
pArray=c2;
pArray=c3;
for(i=0;i《3;i++)
printf("%s ", pArray);
}
程序运行的结果为:
How are you
说明:
(1)程序中c1,c2被定义为字符数组并初始化;c3是一个指针变量,指向字符串所在字符数组的首地址。
(2)语句char *pArray;定义了三个元素的指针数组pArray,数组元素是指向char型变量或数组的指针变量。
(3)语句pArray指向了c1的首地址。
(4)for循环中,语句printf("%s ", pArray)和printf("%s ", c1)的作用是相同的。
字符数组c1,c2,c3和指针数组pArray的内存情况如下图(图中的数组首地址值是假设的值)。
指针数组pArray占用了从FFC0开始的6个字节。char型变量占用1个字节,因此字符数组c1,c2,c3均占用4个字节(包括字符串结束符’\0’)。pArray指向c3。
关于一个c语言结构体指针成员的问题
char
*
name
是一个指针,变量name存放的一个指向字符串的首地址。
你memset之后。name变为零了。也就是说,是一个无效的指针。
对于不同的编译器和执行环境来说,有的会报错,有的则是什么也不输出。或者输出其它的错误信息。

更多文章:
cadence adc仿真(Cadence教程3——与非电路原理图仿真以及版图绘制)
2025年12月27日 10:15
电脑中recent是什么(请问我的电脑里C盘上recent里有很多快捷方式图标,它们有什么用,能删除吗)
2026年4月12日 09:15
安卓permission denied(adb 遇到 Permission denied)
2025年12月28日 14:30
excel函数公式大全讲解乘法(excel乘法公式,财务人士必看)
2025年6月28日 18:45
java开发工具包怎么查看(java.util.* 这一类的包在哪里能查看其内容和作用)
2026年3月19日 05:00
简易php聊天室(用php做的聊天室CPU占用很高怎么解决)
2025年11月20日 08:45
delphi源码特殊标记(在delphi里怎么快速将一段代码加成注释)
2026年8月27日 21:45
西门子plc编程软件是什么(西门子PLC编程软件是西门子通用软件吗)
2025年6月5日 19:00














