数据类型
字符串
字符串末尾会以ASCII码’\0’结束,即十六进制0x00;
字符
枚举
变量枚举型(#define的替代)
C语言之enum的用法和注意事项(枚举类型)_frank的博客-CSDN博客_c enum用法
外部变量(extern)
在模块化编程中,如要在main.c中使用usart.c中的交量数组Buf[ ]和变量RX,需要在usart.c中正常
申明变量类型,然后在usart.h中做类似申明,但要在申明前加extern。
const
在C语言中,当const 修饰一个标识符的时候我们说,这个标识符依然是一个变量,但是它具有常属性,不能被直接改变 。
在C++中,const修饰的标识符就是常量
指针
简单的指针
指针变量没有用到时,要赋以NULL,不然指针就会乱指
一个指针变量只能指向同一个类型的变量,不能忽而指向一个整型变量,忽而指向一个实型变量。
如果指针是指向一个整型变量的,“使指针值加1”急味着使地址值加4个字节,如果是指向一个字符变量的,则增加的不是4而是1。
由于指针变量总是伴随着星号,让其和别的类型的变量不一样,让人感到迷惑,可以把星号移去看看指针到底是什么,在反过来看看加上星号的指针,不管是什么指针,首先他是一个变量,有值和地址;对于一级指针而言,指针的值是一个变量的地址,而指针指向的是一个变量而不是地址
更绕的指针
数组指针和指针数组_mick_hu的博客-CSDN博客_数组指针
使用二级指针一定要配合一级指针一起使用,单独使用二级指针会出错
二级指针的定义 指向指针变量的指针
int **p1; int *p2; int a=4; p2=&a;
p1=&p2; 变量p1里面装着指针p2的地址 p2=&a; 指针p2的值为a的地址 就是p1指
向p2,p2指向a,那么就有如下
printf("%#x\n",*p1); 因为p1指向p2,而p2的值是地址,所以用“0x+十六进制”输出
printf("%d\n",**p1); 等效于 printf("%d\n",*p2); 运行结果: 4
函数
字符串的函数
sprintf()函数C语言中sprintf()函数的用法_yishizuofei的博客-CSDN博客_sprintf函数的用法
memset()函数memset()函数及其作用_落叶随枫-CSDN博客_memset
memcpy()函数memcpy 函数_景初浅行-CSDN博客_memcpy函数
strstr()函数C语言 strstr()函数介绍_阳光大男孩!!!的博客-CSDN博客_strstr函数
atof()函数C语言atof()函数:将字符串转换为double(双精度浮点数)_C语言中文网
strcat()函数strcat函数用法_Root_5476-CSDN博客_strcat函数用法
puts()函数
其他
转义字符在ptintf函数中
printf(““hello””); 我们想打印输出“ “hello” ”,但这样写是错的,改:printf(" \ "hello\ " "); 用到了转义字符,对于sprintf函数也同样
va_list与printf变参问题
C语言中: va_list 解决变参问题_金叶子-CSDN博客_c va_list
函数参数中带省略号的用法_lizhiqiang5846的博客-CSDN博客_js省略号参数