一个指针赋值给另一个指针 (C语言)地址为什么要变成指针才能赋值给指针变量呢?
(C语言)地址为什么要变成指针才能赋值给指针变量呢?指针就是地址。所以你的问题不对。我的理解是,我想问为什么变量需要取地址,然后给指针变量赋值,即int a,*P P=&a让我们来谈谈一个小概念,数字
(C语言)地址为什么要变成指针才能赋值给指针变量呢?
指针就是地址。所以你的问题不对。
我的理解是,我想问为什么变量需要取地址,然后给指针变量赋值,即int a,*P P=&a
让我们来谈谈一个小概念,数字23,在句子“我今年23岁”中,23的意思是年龄;在句子“我的偶像穿着23号篮球服”,23是篮球服的号码。也就是说,数字23在不同的句子环境中具有不同的语义。
在本文中,我们定义了两个成形变量。在内存中,它们都存储二进制代码,但语义不同。一个用于存储整数,另一个用于存储指向成形变量的指针。总之,这两个变量是不一样的。一个是存储常用值的公共变量,另一个是存储另一个变量的物理地址的特殊变量(因此我们需要添加*符号来区分它)。
你能理解吗?如果你不明白,你可以请我再回答这个问题。
指针变量给指针变量赋值什么意思?
指针变量是用于存储指针的变量。例如,inti,J,*P,*q定义整数变量I和指针变量P。I用于存储整数,P用于存储指针,但指针指向整数变量。P=&I将I(即指针)的地址存储在变量P中,指针P指向变量I;同样,P=&J指向变量J。当q=P时,指针变量P为指针变量q赋值,即存储在变量P中的指针存储在变量q中。如果P最初指向J,然后q也指向J
C语言对指针赋值有多少种方法?
不管你在哪种系统中,你都应该区分指针本身和指针指向的数据类型
如果你定义char*P,P指向的内容是字符类型,但并不意味着P是字符类型,也就是说P不必是字节,int*P是相同的;
您可以使用sizeof来查看
例如,您可以定义类型(例如char int long…)*P sizeof(*P)sizeof(P)
例如,在32位系统中,无论前面的类型是塑料还是实数,sizeof(P)的值都是相同的,都是4;在8位系统中(例如SCM系统),它应该是1或2(这应该与SCM的型号有关,不同的SCM系统也应该不同)
也就是说,指针本身不区分类型,它只是一个指向不同事物的代码
就像一个50人的类,一个100人的类,不管这个类中有多少人,都是一样的称为1级和2级