第一次尝试用写博客的方法来记录自己的学习。希望自己以后能慢慢坚持下去
参考书目是《C语言入门经典》 作者:Ivor Horton
头文件ctype.h
include<ctype.h>:测试字符的函数
函数名 | 说明 |
---|---|
islower() | 小写字母 |
isupper() | 大写字母 |
isalnum() | 大写或小写字母,或者十进制的数字 |
iscntrl() | 控制字符 |
isprint() | 可打印字符,包括空格 |
isgraph() | 可打印字符,不包括空格 |
isdigit() | 十进制数字(‘0’~‘9’) |
isxdigit() | 十六进制数字(‘0’~‘9’,‘A’~‘F’,‘a’~‘f’) |
isblank() | 标准空白字符(空格,’\t’) |
isspace() | 空位字符(空格,’\n’,’\t’,’\v’,\r’,’\f’) |
ispunct() | Isspace()和isalnum()返回false的可打印字符 |
isalpha() | 大写或小写字母 |
tolower() | 转换为小写字母 |
toupper() | 转换为大写字母 |
ASCII码中,小写字母比对应的大写字母大32
格式说明符
格式说明符 | 说明 |
---|---|
%d | 十进制数 |
%c | 字符 |
%s | 字符串(字符串的输入需要双引号) |
%x | 十六进制,0x十六进制;%X——输出十以上的大写字母,%x——输出十以上的小写字母 |
%o | 八进制 |
%u | 无符号 |
%p | 指针 |
关键字
typedef: 类型定义(类型重定义)列如typedef unsigned int u_int;
stactic:
- 修饰局部变量-静态局部变量-局部变量的生命周期变长。
- 修饰全局变量-静态全局变量-让静态的全局变量只能在自己所在的源文件内部使用。出了源文件就没法在使用。
- 修饰函数-静态函数-改变了函数的链接属性。
原码: 一个二进制数左边加上符号位所得到的码。二进制数大于0,符号位为0;小于0,符号位为1;
反码: 源码的符号位不变,其他位取反得到。
补码: 反码加1;
只要是整数,内存中存储的都是二进制的补码;
正数:原码,反码,补码三者相同。
运算符
关系运算符(Int类型值)
关系运算符 | 说明 |
---|---|
< | 小于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
> | 大于 |
>= | 大于等于 |
如果比较结果为真,操作结果为1,比较结果为假,操作结果为0
逻辑运算符
逻辑与运算符 &&
{
有0为0,
全1为1
}
逻辑或运算符 ||
{
有1为1,
全0为0
}
逻辑非运算符!
使ture变为false
**
条件运算符
condition ? expression1 : expression2
如果condition等于true,该操作的结果就是expression1的值,如果condition等与false,该操作结果就是expression2的值。
按位运算符
符号 | 名称 | 说明 |
---|---|---|
& | 按位与运算符 | 两个位都是1,结果位就是1,否则结果位就是0 |
| | 按位或运算符 | 一个或两个位是1,结果位就是1,否则结果位就是0 |
^ | 按位异或运算符 | 两个位是不同的,结果位就是1,否则结果位就是0 |
~ | 按位非运算符 | 将0变成1,1变成0. |
<< | 按位左移运算符 | 向左移位,右边补0 |
>> | 按位右移运算符 | 向右移位,对于无符号的左边补0,带符号的右边补1,但在一些系统上补的是0。 |
按位运算符的op=用法:~运算符不能使用
运算符的优先级
二元逻辑运算符的优先级低于比较运算符,比较运算符的优先级都低于二元算术运算符,赋值是列表的最后一个。
条件运算符?:的优先级高于赋值运算符。!运算符在逻辑运算符中的优先级最高。
if语句
if语句
if(expression)
statement1;
Next_statement;
如果表达式为true,就执行statement1,之后在执行Next_statement。如果表达式为flase,就直接执行Next_statement。
if-else语句
if(expression)
statement1;
else
statement2;
Next_statement;
如果expression的值是true,就执行statement1;之后执行Next_statement。
如果expression的值是false,就执行statement2;之后执行Next_statement。
在if语句中使用代码块
if(expression)
{
statementA1;
statementA2;
·······
}
else
{
statementB1;
statementB2;
}
Next_statement;
如果expression等于ture,就执行if后面括号中的所有语句。如果expression等于false,就执行else后面括号中的所有语句。在这两种情况下,程序
都继续执行Next_statement。
嵌套的if语句
if(expression1)
{
StatementA;
if(expression2)
StatementB;
else
StatementC;
}
else
StatementD;
Next)_statement;
其中第二个if只有在第一个if条件expression1为ture时才检查。包含Statement A和第二个if的括号时必须的,以使两条语句都在expression1为ture时执行。
多项选择问题
else-if
if(choice1)
statement1;
else if(choice2)
statement2;
else if(choice3)
statement3;
else
statement4;
Next_statement;
如果第一个if表达式是false,就执行下一个if。继续下去直到一个结果为true的表达式为止。然后执行该if语句后面的语句块。如果所有的if条件都是false, 就执行最后一个else后面的语句或语句块。
swith语句
switch(integer_expression)
{
case constant_expression_1:
statement_1;
break;
case constant_expression_2:
statement_2;
break;
default:
statements;
break;
}
case值必须是常量表达式,既可以在编译期间计算的表达式,case的值必须互不相同。
goto语句
goto语句: 跳转到代码中用语句标签指定的位置。
#include<stdio.h>
int main(void)
{
int a = 0;
there:
printf("HELLO WORLD!");
if(a==0)
goto there;
}
关机
shutdown -s -t