char *p=a和char*p=&a有什么区别

2025-03-22 09:56:25
推荐回答(4个)
回答1:

这个问题主要核心是&的作用和使用方法。
&有俩个用法
1:&是引用的意思

顾名思义,&后面添加的变量作出的返回值就是该变量本身的副本

举个例子char*p=&a,此时p是a的一个副本,对p的任何操作都会改变a的值,当然,对a的任何操作也会改变P得值,也就是p和a是一个概念
2:&是取地址的意思
顾名思义,就是&后面的变量的地址是这个操作的返回值
举个例子,char*p=&a,此时指针p指向的地址就是变量a的地址

单纯看你的这俩句不能准确的说出来俩者的区别,具体区别需要看代码的上下文以及代码的实际使用情况

回答2:

有区别
char *p=a,这个a一般来说是数组,要不然出错
char*p=&a 这个a一般来说是一个变量

回答3:

前者a是一个指针变量
后者a是一个char型变量
参考
#include
int main ()
{
char *a = "124";
char *p = a;
char b = 123;
char *q = &b;

return 0;
}

回答4:

&为连接符,前一句为一个关系式,程序会自动运算结果,最终只返回a值,后一个关系式,可能程序不会运算,具体结果你可以调试运行一下