C++:常用、常查
2026/9/13 12:06:50 网站建设 项目流程

文章目录

    • 1.运算符优先级
    • 2.ASCII码表
    • 3.vim全文替换
    • 4.函数
      • (1)清空数组 / 数组初始化:memset
      • (2)malloc、calloc、realloc
      • (3)sizeof()
      • (4)取整函数
    • 5.算法
      • (1)求最大公约数 gcd()
      • (2)得到一个三位数的个位、十位、百位
    • 6.常用宏
      • (1)SIZE(a) :求数组长度
      • (2)INT_MIN:-2^31^
      • (3)防止头文件重复包含的宏命令(对于.h文件)

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,intc,size_tn);
#include<string.h>intarr[10]={0,1,2,3,4,5,6,7,8,9};memset(arr,0,sizeof(arr));//初始化为0charstr[50]="Hello, World!";memset(str,'h',5);memset(str,0,sizeof(str));
#include<string.h>intcount[26];memset(count,0,sizeof(count));//初始化为0charstr[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结尾

inta=sizeof("Hello");//6intb=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.非递归写法 + 循环

intgcd(inta,intb){if(a<b){swap(a,b);}while(b!=0){intr;a=b;b=r;}// b == 0returna;}

2.递归

intgcd(inta,intb){if(b==0)returna;elsereturngcd(b,a%b);}
intgcd(inta,intb){returnb?gcd(b,a%b):a;}

三目运算符
表达式1 ? 表达式2 : 表达式3;
若1为真,则执行2;若1为假,则执行3;



例题1:实现分数相加

答案:

#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>//辗转相除法求两个数的最大公约数intfindgcd(inta,intb){if(b==0)returna;elsereturnfindgcd(b,a%b);}intmain(void){intnumerator1,numerator2,denominator1,denominator2;intsum1,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;intgcd=findgcd(sum1,sum2);sum1/=gcd;sum2/=gcd;printf("The sum is %d/%d",sum1,sum2);return0;}



(2)得到一个三位数的个位、十位、百位

intnum=153;intones=num%10;inttens=(num/10)%10;inthundreds=num/100;



6.常用宏

(1)SIZE(a) :求数组长度

自定义宏 SIZE(a),用于求数组的长度

#defineSIZE(a)

(2)INT_MIN:-231

1.宏INT_MIN表示32位带符号整数的最小值,即 -231= -2147483648
定义在<limits.h>头文件中

#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<limits.h>intmain(void){printf("%d\n",INT_MIN);return0;}

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行搞定,是通用的宏

#ifdefLogWidget_H#defineLogWidget_H内容#endif

方法2: 1行搞定,但不通用,仅限某些编译器

#pragmaonce内容

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询