C语言中,*p=9和int * p=9有什么区别,两者分别是什么意思

如题所述

p是整型数据指针,可以存放一个地址指向一个整型数据存放区

*p=9;的前提是,变量p已经存放一个有效地址,这个地址可以存放整型数据,这句话的功能就是,令这个地址指向的存储区中存放整型数据9

int *p=9;相当于int *p; p=9;意思是给变量p赋值,赋值的是一个地址,这个地址是9,因此可存放数据的区域地址为9,其中可存放任意整数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-13
int* p=9从语法上来说是错误的,这是一个声明变量的语句,生命的变量为指针变量,指针变量的内容为地址,其他的变量的地址
9不是地址
*p=9;p已经被声明后,*号值的是地址的值
比如p内存有一个地址,这个地址的内容为123
那么*p就是123,或者用*p=9来改变这个123,变成9
你可以这样理解 int* 才是一种变量类型,是指针变量的类型,*和p之间用空格隔开
p是指针变量的内容,存着地址
*p是这个地址存储的内容
第2个回答  2018-08-13

    *p=9;——如果p是已经声明确定了指向的有效指针,则它的意义是将常数9赋给p指向的目标,否则是错误表达式。

    int * p=9;——这是错误表达式,编译都不会过的。因为指针不能用非0常数初始化。

第3个回答  2019-03-07
这就是脑筋急转弯题目
*p(int
*p)
一个返回指针的函数p,形参是一个int型指针
(*p)(int
*p)
一个指向函数的指针p,所指向的函数的形参为int型指针
第4个回答  2018-08-16
int *p=9;
转化一下就是
int *p;
p=9;
//这个9就是地址变量了
而*p = 9;的9就是一个普通变量的值
相似回答