C语言,数组

2021-07-27  本文已影响0人  taobao

数组一般操作

int arr[10];
//一般赋值
for(int i=0; i<10; i++) {
  arr[i] = i;
}
//批量赋相同的值
memset(arr, 0, sizeof(arr));

int a[10],b[10];
//a = b   //这是错误的方法
正确的方式:
for(int i=0; i<10; i++) {
  a[i] = b[i];
}

数值交换

#include <stdio.h>
#include <stdlib.h>

void swap(int *a, int *b);

int main(int argc, char *argv[])
{
    int a=1,b=2;
    printf("%d %d\n", a, b);
    a = a^b;
    b = a^b;
    a = a^b;
    printf("common:%d  %d\n", a, b);

    swap(&a, &b);
    printf("swap:%d %d\n", a, b);

    int arr[2] = {3, 4};
    printf("before:%d %d\n", arr[0], arr[1]);
    swap(arr[0], arr[1]);
    printf("after:%d %d\n", arr[0], arr[1]);
    return 0;
}

void swap(int *a, int *b)
{
    //*a = (*a) ^ (*b);
    //*b = (*a) ^ (*b);
    //*a = (*a) ^ (*b);
    
    *a = *a ^ *b;
    *b = *a ^ *b;
    *a = *a ^ *b;
}

上一篇 下一篇

猜你喜欢

热点阅读