文章目录
1.运算符优先级
1.C语言

2.C++
比起C语言,多增加了几个运算符,如 作用于限定符、new、delete


2.ASCII码表
A-Z:65-90
a-z:97-122

3.vim全文替换
替换全文的所有匹配项
:%s/要被替换的词/用来替换的词/g
4.函数
(1)清空数组 / 数组初始化:memset
void *memset(void *s, int c, size_t n);
#include <string.h>
int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
memset(arr, 0, sizeof(arr)); //初始化为0
char str[50] = "Hello, World!";
memset(str, 'h', 5);
memset(str, 0, sizeof(str));
#include <string.h>
int count[26];
memset(count, 0, sizeof(count));//初始化为0
char str[26];
memset(str, 0, sizeof(str));
memset(起始地址,0~0xFF,长度):一个字节一个字节的设置
(2)malloc、calloc、realloc
#include <stdlib.h>
int* p1 = malloc(个数 * sizeof(int));
int* p2 = calloc(个数, sizeof(int));
int* p1 = realloc(p1, 新的个数 * sizeof(int));
(3)sizeof()
sizeof 运算符用于计算一个对象或类型所占的内存字节数
C语言字符串是以\0结尾
int a = sizeof("Hello"); //6
int b = strlen("Hello"); //5
(4)取整函数
| 函数 | 功能 | 示例 (3.7) | 示例 (-3.7) |
|---|---|---|---|
ceil(x) | 向上取整 | 4.0 | -3.0 |
floor(x) | 向下取整 | 3.0 | -4.0 |
round(x) | 四舍五入 | 4.0 | -4.0 |
trunc(x) | 截断小数 | 3.0 | -3.0 |
5.算法
(1)求最大公约数 gcd()
辗转相除法:(欧几里得算法求最大公约数)
//greatest comon divisor
//a = b * q + r (0 <= r < b)
//gcd(a,b) = gcd(b,r) = … = gcd(d,0) = d
1.非递归写法 + 循环
int gcd(int a, int b){
if(a < b){
swap(a,b);
}
while(b != 0){
int r;
a = b;
b = r;
} // b == 0
return a;
}
2.递归
int gcd(int a, int b){
if(b==0) return a;
else return gcd(b,a%b);
}
int gcd(int a,int b){
return b ? gcd(b,a%b) : a;
}
三目运算符
表达式1 ? 表达式2 : 表达式3;
若1为真,则执行2;若1为假,则执行3;
例题1:实现分数相加

答案:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//辗转相除法求两个数的最大公约数
int findgcd(int a, int b) {
if (b == 0) return a;
else return findgcd(b, a% b);
}
int main(void) {
int numerator1, numerator2, denominator1, denominator2;
int sum1, sum2;
printf("Enter first fraction: ");
scanf("%d/%d", &numerator1, &denominator1);
printf("Enter second fraction: ");
scanf("%d/%d", &numerator2, &denominator2);
sum1 = numerator1 * denominator2 + numerator2 * denominator1;
sum2 = denominator1 * denominator2;
int gcd = findgcd(sum1, sum2);
sum1 /= gcd;
sum2 /= gcd;
printf("The sum is %d/%d", sum1,sum2);
return 0;
}

(2)得到一个三位数的个位、十位、百位
int num = 153;
int ones = num%10;
int tens = (num/10)%10;
int hundreds = num/100;
6.常用宏
(1)SIZE(a) :求数组长度
自定义宏 SIZE(a),用于求数组的长度
#define SIZE(a)
(2)INT_MIN:-231
1.宏 INT_MIN 表示32位带符号整数的最小值,即 -231 = -2147483648
定义在<limits.h>头文件中
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <limits.h>
int main(void) {
printf("%d\n", INT_MIN);
return 0;
}
2.long long类型的最大最小值
LLONG_MIN:-9,223,372,036,854,775,808(即 -2^63)
LLONG_MAX:9,223,372,036,854,775,807(即 2^63 - 1)
(3)防止头文件重复包含的宏命令(对于.h文件)
以LogWidget.h为例
方法1:3行搞定,是通用的宏
#ifdef LogWidget_H
#define LogWidget_H
内容
#endif
方法2: 1行搞定,但不通用,仅限某些编译器
#pragma once
内容

4947

被折叠的 条评论
为什么被折叠?



