当实参传给形参时只是一份临时拷贝!对形参的改变不会改变实参
形参和实参分别占不同的内存块
void swap(int x, int y)
{
int t = 0;
t = x;
x = y;
y = t;
}
int main()
{
int a = 10, b = 20;
printf("a=%d b=%d\n", a, b);
swap(a, b);
printf("a=%d b=%d", a, b);
return 0;
}
但是传入地址 形成你的改变能引起实参的改变
>> <<算术左移 算术右移 相当于二进制移位 去掉最右边的最左边补符号位 0正 1负
>>相当于除以2 <<相当于乘以2;
int main()
{
int a = -16;
int b = a >> 1;
int c = a << 1;
printf("%d\n %d", b,c);
return 0;
}
输出结果为-8 -32
指针类型决定了指针进行解引用操作时能访问空间的大小
int *p *p一次能访问四个字节
char *p 一次能访问一个字节
double *p可以访问八个字节
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[] = { 3,44,38,5,47,15 };
int end, i;
int t;
for (i = 0; i < 6; i++)
{
end = i;
while (end >= 0)
{
if (a[end + 1] < a[end])
{
t = a[end + 1];
a[end + 1] = a[end];
a[end] = t;
end-- ;
}
else break;
}
}
for (i = 0; i < 6; i++)
{
printf("%d\n", a[i]);
}
return 0;
}
将一个乱序数组按从小到大顺序排序,从第一个元素开始如果大于后面的元素则三部交换法交换它们的值 直到比到第1个元素 这一轮循环才算结束