kwrl.net
当前位置:首页 >> 在C语言中,int *p,A; *p=&A,和p=&A有什么区别? >>

在C语言中,int *p,A; *p=&A,和p=&A有什么区别?

#include int main(){int *p,a=0xAA; //声明 int指针变量 p 和 int变量a //*p=&a;//把指针p 指向的值 改变为 变量a的地址 ,是无效的// 因为a的地址长度为4字节,而指针p指向的值为int,即两字节的。 printf("程序运行前的值\n");printf("p的地...

指针本质就是存储内存地址的一个变量。所以指针可以指向某个变量在内存中存储的单元格嘛。变量去访问单元格最后也是编译器通过变量名和地址一一对应去查找的。而指针里面直接存储的就是地址,所以直接可以访问地址所对应的单元格。 不知道楼主说...

总得来说没区别,就是指针初始化的时间不同而已 int *p = &a;//这里p声明的时候直接初始化它的值为变量a的地址 int *p;//声明指针p,p的值不确定可能指向任何地址, p = &a;//显示初始化使p指向a的地址

如果a都是基础类型, 而不是指针, 比如a为int 那么 p=&a, 是把a的地址,赋值给p, p需要是int *类型。 而*p=&a 是把a的地址赋值给*p, p需要是int **类型。 注意 如果是int *p=&a;这种形式 是定义int *类型的p, 并给p初始化为&a。 等效于 int *...

1.一般来说*p=&a的表示方法是错的,*p=a和p=&a是正确的。 2.*p=a的意思:将a的值赋给p指针指向的地址的值; 3.p=&a的意思是:将a的地址赋给指针p; 4.区别:*p是一个值;p是一个地址;两者完全不相同。 5.*代表着p指向的地址的值,简单来说就是...

int *p=&a 其实是两个语句 等价于 int *p; p=&a; 如果a是int型,int *p=a是错误的,正确的应该是 int *p; p=&a; 在定义的时候不能给p直接赋值整型,只能赋值int型地址 即 &a; 如果要给p指针指向的地址赋值,就可以*p=a;但不能在定义*p的时候直接...

p=&a容易理解,就是把变量a的地址存在指针p。*p=&a是把变量a的地址存放在指针p所指向的内存单元

a和p是变量,&a和*p是表达式,1和0x1000是常量 a和*p表示的都是整形左值,p和&a表示的都是指针型左值,1和0x1000表示整形和指针型右值。(左右值的概念不清的话,google一下) 在内存中,a和p有存储空间空间,a存放着1,p存放着0x1000,*p和&a没...

int *p;表示开设一个变量p用于存放地址 数组名即可理解为数组起始地址,也是数组第1个元素地址 int *p=a;与int *p; p=a;和int *p; p=&a[0];都是完成同样的工作:将数组起始地址放到变量p中。

举个例子吧: a是一个数组,它在内存中的初始地址比如说是0x11111111(简单假设),且a[0]的值是1,也就是说,内存0x11111111中存储的值是1。 于是,&a[0]=0x11111111,a[0]=1。 int *p; p=&a[0]; 指针p会有一个自己的内存地址,通常占用4个字节...

网站首页 | 网站地图
All rights reserved Powered by www.kwrl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com