2016 - 2024

感恩一路有你

整形 为什么不用整形变量来存储而发明指针变量呢?

浏览量:2831 时间:2021-03-16 11:13:23 作者:admin

为什么不用整形变量来存储而发明指针变量呢?

事实上,从实现的角度来看,指针是一个整数变量,它只存储一个地址值。

所谓的指针概念和指针类型(不同类型的指针可能有相同的值,但它们不相等,1次操作获得的新地址也不同)是由编译器强加的。编译之后,指针实际上是地址的整数值,没有任何额外的类型信息。

因此,发明指针的概念是为了让程序员更好地理解它,并约束编译器使程序更无错误。

指向整型数组的指针如何用?

int(*P)[10

()的定义具有高优先级。首先,它指出P是指向整数类型的一维数组的指针。这个一维数组的长度是10,也可以说是P的步长,也就是说,在执行p1时,P应该跨越10个整数数据的长度。

因此数组指针也称为指向一维数组的指针或行指针。

所以我们必须分别赋值。

这样,两者之间的区别就很明显了。数组指针只是一个指针变量,在C语言中似乎是用来指向二维数组的。它占用内存中指针的存储空间。指针数组是一组指针变量,它们以数组的形式存储在内存中,占用多个指针的存储空间。

短整形,整形,长整形,长指针,各占几位呢?

在不同的操作系统和编译环境中,指针类型占用的字节数是不同的。一般来说,在编译和生成16位代码时,指针占用2个字节。编译和生成32位代码时,指针占用4个字节。编译和生成64位代码时,指针占用8个字节。我们通常生成32位程序,所以指针占用4字节,整形量也占用4字节。因此指针占用的空间与整数相同。

(C语言)地址为什么要变成指针才能赋值给指针变量呢?

指针是地址。所以你的问题不对。

我的理解是,我想问为什么变量需要取地址,然后给指针变量赋值,即int a,*P P=&a

让我们来谈谈一个小概念,数字23,在句子“我今年23岁”中,23的意思是年龄;在句子“我的偶像穿着23号篮球服”,23是篮球服的号码。也就是说,数字23在不同的句子环境中具有不同的语义。

在本文中,我们定义了两个成形变量。在内存中,它们都存储二进制代码,但语义不同。一个用于存储整数,另一个用于存储指向成形变量的指针。总之,这两个变量是不一样的。一个是存储常用值的公共变量,另一个是存储另一个变量的物理地址的特殊变量(因此我们需要添加*符号来区分它)。

你能理解吗?如果你不明白,你可以请我再回答这个问题。

c语言的指针中*操作符的本质是什么?

总结一下:

1。*首先,一个算术运算符

2。定义指针。例如,下面的定义语句:

int a

定义一个变量a,其数据类型为int

看下面的定义语句:

int*b

定义一个int*变量,如何理解int*可以如下:

*b是int type,它对应一个存储单元,它可以存储int类型的数据,这个单元的地址存储在B中,此时,B是int*数据。因此,您可以执行以下操作

a=*b

但是反向操作是错误的

b=a

您需要使用int类型的变量来给出int*[b=&a

在这种情况下,带有指针类型的形式参数的函数调用方法会很清楚。

理解时要注意两点*

1。当它出现在变量定义语句中时,与数据类型结合起来表示相应数据类型的指针

要定义一个函数fun,该函数带一个整型参数并返回整型指针,其定义语句为什么?

您定义的函数类型由您决定。

也就是说,您的函数是什么类型的,返回值是什么类型的。

例如:

函数定义int fun(int a,char b)

返回值为整数

函数定义int*fun(int a)

返回值为基类型为整数的指针

函数定义void fun(int a)

无返回值

整形 整型 createthread实例

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。