00问答网
所有问题
c语言 int *p=5 是啥意思。 是p的地址是5。还是*p的值为5
如题所述
举报该问题
推荐答案 2013-09-19
你的问题问得很好,这是初学者常困扰的地方。
外形一样的东西,在声明里 和 在语句里 意思 可能不同,这是 C 语言奇葩 之一,常困扰初学者的地方。
int *p=5; 这是声明。声明里 *p 只是表示 声明 p 是指针。 *p=5 叫初始化。
但这样的初始化方法是错误的!指针 初始化 要给 地址,不能给值。
声明里,正确写法如下:
int a=4;
int *p=&a;
这样才对。int *p=&a; 声明 p 是指针,初始化 给 变量a 的地址。
语句里 可以写:
*p =5; 这是赋值语句,语句里 *p 表示指针指向的值,赋5。
语句里 可以写:
p = &b; 语句里 没星号的 p 表示指针指向的地址,赋 变量b 的地址。
所以要分清 是声明 还是 语句。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/eTeIDTTeBjTeeZjnTZ.html
其他回答
第1个回答 2013-09-19
int *p=5——啥意思都不是。因为C/C++中就没有这样的语句,你见过?
如果是int *p=(int *)5,那是定义一个int *型指针并将常数5强制为int *型赋给指针p来初始化指针p。所以int *p=5是完全错误的语句。你可以用
void main(void){
int *p=5;
}
试试看编译器让不让通过编译……
第2个回答 2013-09-19
如果这样的话表示的是p的值是5.
我们一般都这样赋值:
int *p = &5;把5的地址传给指针p
int *p; *p=5; 指针p指向5
第3个回答 2013-09-19
*p表示p的地址
第4个回答 2013-09-19
是一个指针
相似回答
int
*p = 5
,
什么意思
,printf("%d",p);为啥输出5?
答:
int
*p=5
这是一个错误的语句,整型数据不能赋给指针类型。必须要写成int *p=(int*)malloc(sizeof(int));*p=5才可以。这样分配完成后,printf("%d",p)输出的是指针
p的地址
,而不是其内容5。
C语言
中
*p=5
p=5有
什么
不同哦
答:
int p=5;//表示整形变量p赋予值5;int *p=5;//表示整形变量*p赋予值5
;在c语言和c++语言中,*有两种意思:一、相乘的意思,如:j=x*p;x=5,p=10 则j=5*10=50 二、代表指针的意思,指针就是指向一个地址的意思,那么
*p=5则代表这个指针指向的地址为5
,注意,这里这个5不要理解为单纯...
...那么,
int
*p=5
;这句话对吗? int *p="hello";对吗
答:
int *p = 5表示的是定义整型指针p并将p初始化为5 所以等价于 int *p;p = 5
; //注意不是*p = 5 是对的 int *p = "hello"类型不对,可以强制类型转化int *p = (int *)"hello";,不过p是整型,后面是字符常量,没什么实际意义 ...
...比如
int
*p=5
;char *a="abc",为何这里*p输出
为5
,p为
地址
,而这里同样...
答:
int
*p=5
; //编译出错,这是不正确,应该赋值地址 printf("%d,%c\n",p,*a); //这里*a是指a[0],即字母a,格式符用%c printf("%d,%s\n",p,a);//这是a是字符串
的地址
,格式用%s,,输出字符串"abc"
大家正在搜
c语言中&&是什么意思
p语言和c语言哪个简单
void在c语言中什么意思
static c语言
c语言中/什么意思
c语言int范围
c语言char是什么
c语言a+=a-=a*a
int **p
相关问题
C语言中*p=5 p=5有什么不同哦
c语言 int *p,m=5,n; p=&n; *p=m; ...
C语言中 int i=5;那么 int *p=&i和int ...
C语言中int *p[5]与 int (*p)[5]的区别
c语言中(*p)[5]与*P[5]有什么区别?各代表什么意思...
c语言题:若有定义int a[9],*p=a;则p+5表示(...
int *p=(int *)5;是什么意思?
C语言 若有说明:int *p,m=5,n;以下正确的程序段...