为您找到"
谁能解释下int *p=&a是对的,但是*p=&a;却不对?
"相关结果约100,000,000个
疑问 学习过程中,了解到 int *p = &a; 即把变量a的地址赋值给p。所以p里面存的是一串地址。 后来经常看到 char *p ="abc"; 这样的写法,产生疑惑:"abc"也是一串地址吗?32位系统下一个指针占4个字节,如果赋值时,"abc" 双引号里面的字母有成百上千个,那4个字节装得下吗?
谁能解释下int *p=&a是对的,但是*p=&a;却不对?int *p=&a;这一句定义了一个变量p,p是一个指向int型的指针,即p的数据类型是int*,而&a的数据类型也是int*。这条语句可以分写为 int *p;p=&a;所以这一句没问题。*p=
int *p; 这个语句的意思是声明一个int类型的值,这个值为*p,p也是一个变量,不过这个变量存放的是内存地址,*p代表这个内存地址中的值。 相反,&是取地址符,也就是address-of。 声明int a; 时,系统会分配一块内存用于存放int型变量a,&a为用于存放变量a的内存 ...
而 & 则是取地址运算符,因此给指针变量赋值的方式一般是把变量的地址取出来,然后付给对应类型的指针变量: int a; int* p = &a; 上面的代码也可以写成: int a; int* p; p = &a; 需要注意的是, int* 是指针变量的类型,而后面的 p 才是变量名,用来 ...
指针变量用来存放指针(或者可以理解成地址)。而 & 则是取地址运算符,因此给指针变量赋值的方式一般是把变量的地址取出来,然后付给对应类型的指针变量:int a;int* p = &a;上面的代码也可以写成:int a;int* p;p = &a; 需要注意的是, int* 是指针变量的类型,而后面的 p 才是变量名,用来 ...
int a = 10; int * const p = &a; //const 修饰的是指针p,因此指针p的内容无法改变,即p只能指向a,不能指向其他地方,但是*p不是常量,因此可通过*p修改a的值 int b = 11; const int * p = &b; //const 修饰的是'int * p',也即a,把这个表达式声明为常量,因此无法通过*p = 12;改变 ...
所以*p就是取a地址中存放的值, *p=512; 对于指针p来说,*p就是指针p所指向的内存空间存储的值; *p=a的意思:将a的值赋给p指针指向的地址的值; p本身不改变。 p=&a就是用a的地址对p赋值. a是一个变量,&a就是存储这个变量的内存地址. 指针存储的就是一个地址 ...
const int * p=&a;//创建一个指针,它指向存储int数据的内存a,const int 只表明不允许通过对指针p解引用 (*p)修改p指向内存中的数据,至于a是否是const均可。另外,可以修改指针p内存中的数据,使其指向别的内存。
以下内容是CSDN社区关于int *p=&(a++);为什么是错误的?谁能解释啊?相关内容,如果想了解更多关于C语言社区其他内容,请访问CSDN社区。 ... 单纯的++a和a++没有什么区别,但是放到表达式中就不同了! ...
文章浏览阅读5.1k次,点赞8次,收藏3次。关于的int *p,q与int* p,q 一些问题一、如果 " * " 与 int 结合,即 (int*)p,则可将 int* 理解为 指针变量(一种类型),那么 int* p = &a 意思就是将 变量a 的地址赋给 指向整型变量的指针变量p。int* p;int * p;int *p;二、但是,第一种理解无法解释 的意思是定义 ...