1第一个示例程序
include
int main()
{
printf("hello world!!!!\n");
return 0;
}
C语言的运行
1>
注意点:如果gcc xx.c出现error,将不会产生a.out
如果gcc xx.c出现cwarning,是会会产生a.out
//*
自己写一个脚本去执行xx.c.类似mygcc xx.c
1>参数个数
2>参数个数为0 给出错误提示
*//
2 C语言的注释
单行注释://code
多行注释:/code/
快速注释/code/
注意点://code/*/是错误的
3
输入输出函数
printf
运算符 + - * / % ++ --
1> 类型转换
计算机会进行相同类型的转换,如果类型不相同,计算机内部会进行一个隐士类型转换
char---->int---->flooat----->double
强制类型转换:(数据类型)变量或常量
注意点:
强制类型转换不会改变变量原本的数据类型
%左右两边的数据类型必须要是必须要是相同类型
4 输入和输出函数
printf:printf formatter 格式化函数输出
%d:输出整数类型的函数
%f:输出浮点类型的函数
%c:输出字符类型的函数
%p:输出变量在内存当中所占的地址
%m,nf:
m<=n+1+整数实际的位数,m没有意义
吗>你+1+整数实际的位数,m才有实际的意义
%md:
%mc:
scanf
scanf的注意点:
1>不要再scanf的后面加\n
2>不要再scanf连做太多的动作
3>scanf""里面的类型必须和后面的变量的类型相一致
getchar和putchar
getchar():从输出缓存流里面取出一个字符给一个变量
putchar():从输出缓存流里面拿出一个字符到控制台,里面可以放置:字符变量,字符常量整形变量和整形常量
怎么拿出输入缓存流里面的换行符,(吸收回车)
getchar() char ch:
scanf("%c",&ch)
getc(stdin);//从输入缓存流里面拿出一个字符,stdin:标准输入流
5float和double
如果是float类型的数据,精确到7位 ,有些机器精确到7~8位.
如果是double类型的数据,精确到16位,有些机器精确到15~16位.
5 特殊字符
":"
`:可以加,也可以不加
%:%%代表一个%
\n:换行字符
\t:相当于一个tab键
ASSIC码:
"\0":0 '':32 '0'48 'A'65 'a':97
6变量的存储方式
小端法:地位上的数存储在地址晓得端口
大端法:地位上的数存储在地址大的端口
系统及其的字节======>网络上的字节序=====》系统机器的字节序
运算符:
计算机是以二进制凡是存储数据,以数据的不嘛存储 源码输出
计算机只会计算相同类型的数据 不会计算不同类型的数据,而且计算机内部会进行一个隐士转换
char---->int----->float----->double
强强制类型转换:(数据类型)常量或变量
注意点;强制类型转换不会改变原有的数据类型
1>算术运算符
+ - * \ % ++ --
其中%的两边的数据类型必须要是整数类型
前缀++ 后缀++前缀--后缀--
2位运算
例题:1+(-1)等于0的结果正确
1
源码:0000 0000 0000 0000 0000 0000 0000 0001
-1
源码:1000 0000 0000 0000 0000 0000 0000 0001
反码:1111 1111 1111 1111 1111 1111 1111 1110
补码:1111 1111 1111 1111 1111 1111 1111 1111
0000 0000 0000 0000 0000 0000 0000 0001
1111 1111 1111 1111 1111 1111 1111 1111
10000 0000 0000 0000 0000 0000 0000 0000
由于计算存储整形是4个字节,32位算出来是33位,所以舍去最高位,于是结果为0
再例如
|位或:只要有1就为1
&:位于:有0 就为0
去变量地址的运算符
~按位取反,
^;异或:只要不同就为1
<< >>: 左右移
再有符号中:
字符变量-128的二进制就是1000 0000 000........
unsinged char ch ;//0~255
char ch: -128~127
=赋值运算 = += -= *= /= %= |= ^= &= <<= >>=
逗号:
括号:()
(type)强行类型转换
sizeof()计算字节长度
用法:sizeof (数据类型/变量名)
关系运算符:
< > <= >=++ !=
注意点:关系运算符所得的结果是一个逻辑值,在计算机当中,逻辑值分为0和1 ,如果这事实逻辑只是是真的,那么逻辑结果就以为 否则为0;。
逻辑运算符:
&&:事件一并且事件2成立,两个时间才成立整个事件才为真,逻辑值为1
||: 事件1或者事件2,只要有一个成立,整个事件就为真,逻辑值就为1
!:!事件,时间不成立的时候,这个运算结果为1
注意点:事件1&&事件2 ,当时间1不成立的时候就没有必要执行事件2 了,因为逻辑结果总为0
事件1 ||事件2 ,当事件1成立的时候,就没有必要去执行事件2 ,因为逻辑结果总为1
三目运算符
条件?语句1:语句2
如果条件成立就执行语句1,否则就执行语句2