C/C++中的&的用法、以及C语言的特点

在C语言中,&是有三种含义的。
1.用于指针赋值。
#include<stdio.h>
int main()
{
int a = 10;
int* b;//定义一个整形指针
b = &a;//给指针赋值,使指针指向a的地址
printf("%d", b);//输出的是a的地址
printf("\n");//换行符
printf("%d", *b);//*取值符
return 0;
}
2.用于位运算符中(双目)的按位与操做(按二进制位进行"与"运算)
单目是只需要一个操作数的意思 比如 a++ a-- a &a
双目是需要两个操作数的意思 比如 a+b a-b a
b a/b a%b
三目是需要三个操作数的意思 比如 a=c>b?c:b
下面我们来看个列子:
#include<stdio.h>
int main()
{
int a = 6;
int b = 7;
int c = 6&7;
printf("%d\n", c);//输出的是6
return 0;
}
8&5可写算式如下:
00000110 (6的二进制补码)
00000111 (7的二进制补码) 
00000110 (6的二进制补码)。
可见6&7=6

3.当出现“&&”时用于逻辑与
也就是并且。
例如:
int a=3,b=2,c=0;
if(a>b&&b>c){
printf("%d\n", a+b);
} else{
printf("%d\n", a-b);
}
最后输入的是5;
以上都是在C语言中的含义。
然而&在C++中还可以作为引用。
例如:
#include <stdlib.h>
using namespace std;
void add(int &a) {
a = a + 1;
}
void add1(int a) {
a = a + 1;
}
int main() {
int a= 33;
int b= 33;
Int &d = b;
cout << "a : " << add(a) << endl;
cout << "b : " << add1(b) << endl;
cout << "d: " << d << endl;
cout << "d地址: " << &d << endl;
}
输出:
a:34 b:33 d:33 d地址: 012FF6F0
1)引用就是为某一变量设置别名,对引用的操作等效于对变量本身操作;
2)引用的方式:数据类型 &引用名 = 目标变量
但是我们要注意:
引用不会定义新的变量,系统也不会开辟新的内存空间给d,即 b 跟 d 指向的相同的地址。引用常用于函数的参数来使用,在函数的内部对引用进行操作,就等效于对原变量的操作。
C语言的特点:
1.数据类型很丰富,不过没有字符串类型。它都是通过指针对字符串进行操作的。
2.便于底层运算
3.可以对指针进行操作
4.适用的范围大、移值性较好(关键字少)、
5.简洁紧凑、灵活方便
6.语法限制不太严格,对程序设计的自由度较大
7.生成的代码质量越高,程序执行效率越高

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值