c语言中*a和&a有什么区别

如题所述

1、本质区别

双引号里面的是字符串, 而单引号里面的代表字符。

2、输出区别

str = “a”输出的就是a这个字母;

str = ‘a’输出的测试65

3、底层区别

用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。

扩展资料:

C 语言中,逗号(,)也可以是运算符,称为逗号运算符(Comma Operator)。逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式。其一般形式为:

子表达式1, 子表达式2, ..., 子表达式n

例如:a + b, c = b, c++

逗号运算符的优先级是所有运算符中级别最低的,通常配合 for 循环使用。逗号表达式最右边的子表达式的值即为逗号表达式的值。上例中,c++ 的值(c 自增之前的值)即为该表达式的值。

逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算。因此,上例中,c 得到 b 的值后,才进行自增运算。

参考资料来源:百度百科-C语言

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-22
1、&a:其含义比较单纯,就是“变量a的地址”。
2、*a:用在不同的地方,含义也不一样。(1)在声明语句中,*a只说明a是一个指针变量,如int *a;(2)在其他语句中,*a前面没有操作数且a是一个指针时,*a代表指针a指向的地址内存放的数据,如b=*a;(3)*a前面有操作数且a是一个普通变量时,*a代表乘以a,如c=b*a。本回答被提问者采纳
第2个回答  2017-05-22
*a ①是在定义时*a 代表定义某类型的指针变量 a;②是表示取存在 a 变量所存放地址里面的数据
&b 表示取 b 变量地址,举例说明:
int b=10,*a;
a=&b;
scanf("%d",a);//效果与 scanf("%d",&b);相同
printf("%d = %d",b,*a);// b 和*a 的值应当相同
不懂再问~本回答被网友采纳
第3个回答  2017-05-22
*a是乘以a这个数字要加*这个字符就成了*a,&a是输入a这个数字时要加&这个字符就成了&a。