*p=&a和p=&a C语言指针未初始化能给另一个指针赋值么?
C语言指针未初始化能给另一个指针赋值么?
我试过哈,第一次可以编译通过,但是不能运行,错误!第二个是正确的格式。指针必须指向空格或null。我认为它是指向一维数组的指针:inta[10],a是指向一维数组的指针:inta[10]int*P=ap指向数字组的指针变量。相同:可以访问数组的元素,例如a[i]和P[i],*(P i)等价物。区别1:A是指针常量,其值不能更改。例如,int a[10]int b[10]a=b//试图更改常量的值,非法操作!P是可以更改其值的指针变量。例如,int a[10]int*P=a int b[10]*P=b//尝试更改变量的值是合法的!区别2:int a[10]int*P=a printf(%d%d”,sizeof(a),sizeof(P))//输出40,4当sizeof用于计算指针大小时,如果是指针常量,则结果是指针常量所指向区域的大小。例如,A.由10个int元素组成,占用4*10=40字节。如果是指针变量,则结果是指针变量本身的大小。指针变量通常占用4个字节。
可以把一维数组指针赋给另一个指针吗为什么?
指针变量是用于存储指针的变量。例如,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。
指针变量给指针变量赋值什么意思?
指针就是地址。所以你的问题不对。
我的理解是,我想问为什么变量需要取地址,然后给指针变量赋值,即int a,*P P=&a
让我们来谈谈一个小概念,数字23,在句子“我今年23岁”中,23的意思是年龄;在句子“我的偶像穿着23号篮球服”,23是篮球服的号码。也就是说,数字23在不同的句子环境中具有不同的语义。
在本文中,我们定义了两个成形变量。在内存中,它们都存储二进制代码,但语义不同。一个用于存储整数,另一个用于存储指向成形变量的指针。总之,这两个变量是不一样的。一个是存储常用值的公共变量,另一个是存储另一个变量的物理地址的特殊变量(因此我们需要添加*符号来区分它)。
你能理解吗?如果你不明白,你可以请我再回答这个问题。
(C语言)地址为什么要变成指针才能赋值给指针变量呢?
请好好学习指针。这是如何通过指针赋值。例如,上例中的int a=10、int*P=&a*P=20、cout<<A<<endl输出20。在初始化过程中,a被赋值为10,然后指针P被定义并初始化为a的地址,这样P指向a,然后通过星号将P所指示的内存赋值为20。这被称为间接寻址,因为P的值是a的地址,所以*P表示a的值,而a被改为20。=“”在您的例子中,获得的值被分配给E表示的变量。如果使用E,E的值将被改变。E是一个局部指针变量,函数将在末尾释放。用e表示的变量不会得到值,也不会改变。=“”>
例如,打开一个空格:char*P=(char*)malloc(10),然后可以赋值1,strcpy(P,“Hello”)2,数组形式赋值。P[0]=“a”P[1]=“B”3。指针窗体赋值。*P=“a”P=“B”4。Memset(P,“a”,10)将所有内存空间初始化为字符“a”
*p=&a和p=&a 指针之间可以相互赋值吗 两个指针可以相互赋值吗
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。