前言
记录一下这几天学到的小知识点。刚入C语言没几天,知识还没有成体系,先把最近学到的知识记录一下,方便以后复习。
一.指针参数
问题描述:C语言中交换两个变量的值。
代码如下:
#include<stdio.h>
void change(int* a, int* b){
int t = *a;
*a = *b;
*b = t;
}
int main() {
int a;
int b;
//交换a,b的值
change(&a, &b);
printf("%d %d", a, b);
return 0;
}
二.指针的大小
32位编译环境,指针占4个字节;
64位编译环境,指针占8个字节。
三.数组指针方面的知识
- *(arry + i) = arry(i)
- 函数中传入数组变量。
问题描述:
输入一个数组,调整数组中元素位置,使奇数在前,偶数在后。
输入描述:
输入第一个数 n 表示数组长度,数组中的数字按空格分开输入。
输出描述:
输出调整后的数组元素,每个数字后都有空格。
代码如下:
#include<stdio.h>
void printArry(int* nums, int n){
for (int i = 0; i < n; i++) {
printf("%d", nums[i]);
}
}
int main(){
int nums[100] = {0};
int n = 0;
scanf("%D", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
int i = 0;
int j = n - 1;
while (i < j) {
//从后往前找奇数
while (nums[j] % 2 == 0 && i < j) {
j--;
}//找到奇数了
//从前往后中啊偶数
while (nums[i] % 2 == 1 && i < j) {
i++;
}//找到偶数了
//交换奇数与偶数
int t = nums[i];
nums[i] = nums[j];
nums[j] = t;
i++;
j--;
}
printArry(nums, n);
return 0;
}
总结
以后仍会陆续更新