1,若a为int型变量,则以下哪一个语句是正确的 a,int *p=a; b,int p=*a;c,int *p=&a;d,int p=&a

如题所述

c是正确的,但是在c语言里面a,c,d,都是允许的。a是一个int型变量,b选项中,*a是把a中存储的地址位置上的对应内容取出来,但是a本身就不是指针,也就没有表明其所指的位置存储的是什么类型的数据,所以没有任何意义。而a选项中是将a中的值当做地址数据赋值给了一个指向整型变量的指针,那就相当于把这个值当做地址来用了,这在C里面是允许的,C++不允许。但是要注意,如果a里面只是一个随便的数值的话,p所指向的就是一个之前不知道是做什么的地址位了,这样的操作就很危险。而d选项是将a变量的地址作为一个数值赋值给了int型变量p,那就是说p只是一个存了个地址位置的一般变量了,没有指针功能,和选项a一样,在C里面是允许的,C++不允许。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-12
1,若a为int型变量,则以下哪一个语句是正确的 ()
A.int *p=a; B.int p=*a;C.int *p=&a;D.int p=&a
//A选项是定义指针变量且赋初值,赋的值只能是地址,因此C正确
B选项是定义变量,给变量赋值是数据,但是a是变量,不是指针变量,所以不能加*
D选项要把&去掉本回答被网友采纳
第2个回答  推荐于2017-11-20
c,int *p=&a;
是正确的。p是一个指向int的指针,把a的地址赋值给p。本回答被网友采纳
第3个回答  2012-05-14
c正确,&a指的是地址只能存放在一个指针变量中;
一般讲int * a理解为int * a,是一个指向整型的指针变量int*
第4个回答  2012-05-12
选a,p是指针,*p是指针的变量的值。不能把地址赋给整型变量

...a,int *p=a; b,int p=*a;c,int *p=&a;d,int p=&a
c是正确的,但是在c语言里面a,c,d,都是允许的。a是一个int型变量,b选项中,*a是把a中存储的地址位置上的对应内容取出来,但是a本身就不是指针,也就没有表明其所指的位置存储的是什么类型的数据,所以没有任何意义。而a选项中是将a中的值当做地址数据赋值给了一个指向整型变量的指针,那就...

6 若已定义a为int型变量,则___是对指针变量p的正确说明和初始化。 A...
选择D int *p = &a;表示定义一个指向int型变量a的指针p

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

若a和b均为int型变量,则以下语句的功能是
a、b的值互相交换。

若a为int型变量,则执行以下语句后,a的值为() a=5;a+=a-=a*a;求做法...
按照顺序算呗。a-=a*a -> a=-20 a+=-20 -> a=-40

下面语句错误的是( )。 答案: A、int *p; *p=20; B、char *s="abcdef...
选A。虽然没有看到C、D两个备选项,但A选项就是错误的。int *p;p=20; \/\/p没有指向任何单元,就给这个单元赋值,显示是访问了不知名空间。

若a为int类型变量,则执行以下程序段后a的值为多少啊? a=5; a*=a\/=...
赋值运算符是右结合性,从右到左边首先计算将a赋值为a\/a 所以a=1 再将a赋值为a*a 所以a=1 再a自相加 所以a等于2 因为a++是后+,所以完成整个表达式后才自加

...x,*p;则以下正确的赋值表达式是 A.p=x B.*p=&x C.p=&x D.p=*x...
C.p=&x 指针指向整数x的地址

若a是int型变量,则下列表达式的值为___。
若a是int型变量,则下列表达式的值为 (a=4*5,a*2),a+6 执行步骤: 1:a=4*5, a=20; 2: a*2 ,a任然为20,; 3:a+6,得26 4:逗号运算符的结果是最后一个逗号之后的表达式的值,所以结果为26,此时a=26 希望对你有帮助!若a是int型变量,则表达式(a=4*5,a*2),a...

c语言中int*p=a与int*p=&a有什么区别???求大侠帮忙!!!
区别很大。第一个int *p = a;这是把a给一个指针,一般a是指针或数组,否则可能会造成很大错误。int *p = &a;这是把a的地址给p,一般a可以是一个整型变量。

相似回答