auto 自动数据类型,局部变量默认的存储类(自己不用写)
//auto 只能用在函数内,即 auto 只能修饰局部变量。
{
int mount;
auto int mount;
}
mount == mount
break 在循环体中使用,跳出循环
在switch中使用,配合case使用结束switch
char char01 = NULL
switch(char01)
{
case 'A' :
printf('a');
break; /* 可选的 */
case 'B' :
printf('b');
break; /* 可选的 */
/* 您可以有任意数量的 case 语句 */
default : /* 可选的 */
printf('*');
}
case 配合switch使用
- switch语句中使用的表达式必须具是int或enum类型,否则如float等其他数据类型是无法通过的编译的,因为编译器需要switch后面的语句和case后面的值精确匹配,而计算机无法精确表达一个float数据类型.
- switch可以任意个case语句(包括没有), 值和语句之间使用:分隔
- case后面的值必须是int常量值,或者返回结果为int类型的表达式,
char 一种变量类型(通常是一个字节大小)
C 中默认的数据类型都是signed 存在unsigned char
char : -127~127 unsigned char 0-255
关于中文 在我的机器上一个中文3个char
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[100] = "你好";
printf("%s %ld\n", str, strlen(str));
return 0;
}
//输出
//你好 6
但是
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符。
其中:
0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符)
如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;
通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;
ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
同时还要注意,在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1 [1] 。
后128个称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。
const 声明一个变量的值不可改变(常量)
continue 继续 用于循环 直接进入下一次循环
在while循环和do…while循环中,程序控制权传递给条件测试语句
在for循环中,continue影响循环的增量部分,然后执行条件测试
default switch中的一个默认的情况
当switch后面的变量和所有case后 面的常量都不匹配的情况下,默认执行default 后面的语句
do 一种循环体
double 声明双精度浮点类型变量
else 与if / else if配合使用
enum 枚举
//定义
enum color{
red=1,
oreange=2,
yellow=3,
green=4,
ching=5,
blue=6,
purple=7
};
//使用
enum color myFavorite = red;
1 == (int)myFavorite; //true
myFavorite = (enum color)1;
extern 声明一外部变量
只有当一个变量是一个全局非静态变量时,extern变量才会起作用.
float 声明单精度浮点类型变量
for 循环
for (int i = 0; i < arrrayLength; i++)
{
//code
}
goto 跳转到函数指定位置
goto语句只能在函数内部跳转,不能跨函数可以跳出多重循环(多用于此).
标号只是标号(名字随意)(标号后跟冒号),程序到标号位置正常执行.
#include<stdio.h>
#include<stdlib.h>
int main()
{
//code
goto TAG01;
//code
TAG01:
printf("程序结束\n");
return 0;
}
if 判断
if(boolean_expression)
{
/* 如果布尔表达式为真将执行的语句 */
}
int 声明整型变量
long 声明长整型变量
long == long int //数字后面要加l 12l
register 存储类型
register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。
这意味着变量的最大尺寸等于寄存器的大小,
且不能对它应用一元的 '&' 运算符(因为它没有内存位置)
使用registerg更快 用在循环中效果很好
return 函数返回
函数一旦遇到 return 语句就立即返回,后面的所有语句都不会被执行到了。
从这个角度看, return 语句还有强制结束函数执行的作用
返回值类型为void的函数也可以使用return 来结束函数
short 声明短整型变量
signed 有符号变量类型,默认就是有符号的
sizeof 是C语言的一种单目操作符
不完全类型指具有未知存储大小的数据类型(不能使用sizeof)
sizeof操作符的结果类型是size_t 它在头文件中定义为: typedef unsigned int size_t;
当操作数具有数组类型时,其结果是数组的总字节数。
static 静态储存 可以在函数结束时仍保留
使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。
static 修饰符也可以应用于全局变量。当 static 修饰全局变量时,
会使变量的作用域限制在声明它的文件内。(对其他文件隐藏)
struct 结构/位域
#include <stdio.h>
#include <string.h>
/* 定义简单的结构 */
struct
{
unsigned int widthValidated;
unsigned int heightValidated;
} status1;
/* 定义位域结构 */
struct
{
unsigned int widthValidated : 1;
unsigned int heightValidated : 1;
} status2;
int main( )
{
printf( "Memory size occupied by status1 : %d\n", sizeof(status1));
printf( "Memory size occupied by status2 : %d\n", sizeof(status2));
return 0;
}
switch 选择
switch(expression)
{
case constant-expression :
statement(s);
break; /* 可选的 */
case constant-expression :
statement(s);
break; /* 可选的 */
/* 您可以有任意数量的 case 语句 */
default : /* 可选的 */
statement(s);
}
switch 语句中的 expression 是一个常量表达式,必须是一个整型或枚举类型。
typedef 为类型取一个新的名字
为了简写长(书写长度)变量类型 或为变量类型起一个有意义的别名
像下面这种声明方式是不可行的: typedef static int INT_STATIC;
union 联合体
意味着一个变量(相同的内存位置)可以存储多个多种类型的数据。
可以根据需要在一个共用体内使用任何内置的或者用户自定义的数据类型。
可以申请一个八位的char类型,然后申请八个一位的char类型
这样就可以通过一个char控制八个开关;
unsigned 无符号类型
unsigned int = 255;