C语言 &
& 用法
1.地址符
代码如下(示例):
有两个函数,一个按值传递,一个按地址传递
#include <stdio.h>
#include <iostream>
using namespace std;
int G(int a) //a是形参, 按值传递
{
a = a+1;
printf("a = %d\n",a);
printf("a = %d\n",&a);
return 0;
}
int G1(int &a) //a是形参,按地址传递
{
a = a+1;
printf("a = %d\n",a);
printf("a = %d\n",&a);
return 0;
}
int main()
{
int i = 6;
G(i); //a按地址传递 int a = i
printf("i = %d\n",i);
printf("i = %d\n",&i);
printf("--------\n");
G1(i);
printf("i = %d\n",i);
printf("i = %d\n",&i);
return 0;
}
结果
解释:
printf("i = %d\n",i); //输出i的值
printf("i = %d\n",&i);//输出i的地址
两个方法,都使用的是先前定义的 int 类型 i ,因此 a 的值均相同,都为 7 ,但是第一次是 按值传递,所以实际上是在内存中新划定了一片位置存值。第二次是 按地址传递,所以实际上就是一直用 i 运算。因此第二种方法下,值 a 与 值 i 实际上是一个,地址相同!
2. && “与”操作
代码如下(示例):
&& 是c语言中的 and 操作,也可以理解为中文的 “且”
#include<stdio.h>
int main()
{
int a = 233;
int m,k;
m = (3 > 2) && (a = 0); // 错
k = (4 > 3) && (a = 233); // 对
printf("m = %d,k = %d\n",m,k);
return 0;
}
结果
对为 1 错为 0: