关于变量与函数的定义描述

CodeDescription
double b = 10.0;Declare a variable b of type double and assigning an initial value of "10.0"
double x[3];Declare an array of three double precision float(双精度浮点)
double a[10][6][8];Declare a 3-D array named a with the dimension of 10, 6, 8
char f3()f3 is a function returning a single character
float intToFloat(int number)Declare a function intToFloat that takes an integer argument, number, and returns a floating type result
int *myPtr = &x;Declare a pointer with an identifier myPtr and assign it to the address of the integer variable x
int powr(int base, int n)Declare a function named powr with 2 int input parameters named base, n, and return a value with the type of int

printf()函数的输出

printf("%02d", x);

输出格式:01,02,10,11(%02d 表示输出2位,不足的用0占位,%2d 即为用空格占位)

小数默认精度 后6位

int 2^31-1 2147483647

三目运算符

sum = (a > b) ? a : b;

关于字符串的函数

加载 string.h

strlen() 返回字符串长度,不包括末尾 \0 (区分 sizeof() )

strcpy(aim, source) 复制字符串内容(或直接赋值),返回 char* 指向第一个参数, 即拷贝开始的位置

strncpy(aim, source, n) 多一个参数,指定复制的最大字符数(注意可能无 \0 )

strcat(s1, s2) 将 s2 副本添加到 s1 后,返回 char* 指向第一个参数,s1 需足够容纳,否则有溢出风险

strncat(s1, s2, n) 多一个参数,指定添加的最大字符数,自动在末尾添加 \0

strcmp(s1, s2) 比较字符串,相同返回 0s1 < s2 返回值负,反之为正

strncmp(s1, s2, n) 比较到指定位置,n 指定比较的字符数

strtok(str, delimiter) 将字符串按指定分隔符分解为 tokens

接受两个参数:待拆分字符串,指定的分隔符
返回 char* 指向分解出的第一个 token,并将 token 结束处的分隔符替换为 \0
若无任何 token,返回 NULL
第一个参数若是 NULL,则从上一次分解结束出继续分解
会替换传入的 str,故最好传入需分解的字符串的拷贝

#include <stdio.h>
#include <string.h>

int main()
{
 char string[] = "This is a sentence with 7 tokens";
 char *tokenPtr = strtok(string, " ");

 while (tokenPtr != NULL)
 {
     printf("%s\n", tokenPtr);
     tokenPtr = strtok(NULL, " ");
 }
 return 0;
}

宏 Macro

#define SUM(x, y) ((x)+(y))

位运算符

~ 取反 对每一位取相反值

&

|

^ 异或 有且仅有一个为1,返回1,否则返回0

<< 左移

>> 右移

8 位 = 1 字节
8 bits = 1 byte

sizeof()

printf("%zd", sizeof(3.14)) 输出为8(小数字面量默认为double)