今日份笔记

今日份笔记

(不准确,勿喷,希望各位为大佬帮助更改,初学)

do-while 可以省略do但不能省略while
c语言中可以没有输入但一定有输出
字节
int占用4个字节
short占用2个字节
long占用8个字节
char 占用1个字节
float占用4个字节
double占用8个字节
int char float 所占字节长度由机器字长决定;
sizeof(long)=4; sizeof(long long)=8;
sizeof(数据类型)= “括号内数字数据类型的长度,并不是数据的宽度” eg(“sizeof(1998)=4(sizeof(1998.0f)=4(浮点型数据类型))
常量
十进制常量:由正负号,和数字组成,开头不能为零;
八进制:以0开头,由数字0-7组成;
十六进制:以0x或0X开头,长整型常量一般在后面加字母L或l;
浮点型常量:十进制表示法:987. ,-123.456 , .456 ; 。在小数点前后至少一边有数字;
指数表达:有尾数部分和指数部分构成;,指数部分以E或e开头,后面跟一个带±号的整数;
浮点型常量又分以下三种:1:float型:后缀为f或F; 123.f ,987.123F,123.e+3f,98f
2:double型: 没有后缀:123. ,987.123 ,123e+3 , 12E123:long double型: 有后缀: 123.l .987.123l ,123e+3L
注意:123.是浮点型常量,123是整型常量。123.l是长整型常量;
字符常量:用单引号括起来的字符 :’a‘ ,’?‘ ,’4‘;
字符串常量:有一对双引号引起来的 0 个或 多个 字符序列;“A"属于字符串常量
转义字符
常用的转义字符及其含义:
转义字符 转义字符的意义 ASCII代码
\n 回车换行 10
\t 横向跳到下一制表位置 9
\b 退格 8
\r 回车 13

List item

\f 走纸换页 12
\ 反斜线符"" 92
’ 单引号符 39
\” 双引号符 34
\a 鸣铃 7
\ddd 1~3位八进制数所代表的字符
\xhh 1~2位十六进制数所代表的字符
广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表中的\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如\10示字母"A" ,\101表2表示字母"B",\134表示反斜线,\XOA表示换行等。
函数
所有被调用的函数不一定要在调用之前定义,:可以在头文件定义
程序设计结构化程序设计所规定的三种基本控制结构是:顺序,循环,选择
参数
函数中的形参是局部变量;
函数只有两种传递方式:
1、值传递,又称单向传递,只能把实参数值传给形参 ,形参最后的结果不影响实参(形参改变大小 ,实参大小不变)。
2、址传递,通过指针,把实参的地址给形参,形参的大小可以影响实参。
语句
把多个语句用括号{}括起来组成的一个语句称复合语句。
在程序中应把复合语句看成是单条语句,而不是多条语句,复合语句内的各条语句都必须以分号“;”结尾;此外,在括号“}”外不能加分号。
逗号表达式
逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值 (表达式1,表达式2)(求最后一个表达式的值)
位运算符
<< 左移 将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。例:a = a << 2 将a的二进制位左移2位,右补0,左移1位后a = a * 2; 若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。

右移 将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。操作数每右移一位,相当于该数除以2。
& 按位与
| 按位或
^ 异或运算
~ 取反运算
复合赋值运算符
位运算符与赋值运算符结合,组成新的复合赋值运算符,
它们是:&= 例:a &= b 相当于a=a & b|= 例:a |= b 相当于a=a | b>>= 例:a >>= b 相当于a=a >> b<<= 例:a <<= b 相当于a=a << b^= 例:a ^= b 相当于a=a ^ b运算规则:和前面讲的复合赋值运算符的运算规则相似。不同长度的数据进行位运算如果两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算。以“与”运算为例说明如下:我们知道在C语言中long型占4个字节,int型占2个字节,如果一个long型数据与一个int型数据进行“与”运算,右端对齐后,左边不足的位依下面三种情况补足,
(1)如果整型数据为正数,左边补16个0。
(2)如果整型数据为负数,左边补16个1。
(3)如果整形数据为无符号数,左边也补16个0。
逻辑运算符
&& 当左侧为假时,不进行右侧的运算(称为短路运算)
练习

int num =10;
int result = num++>11&& --num <20;/* num=11;;;;;result =0;*/ num++相当于 result =num xxx这条语句执行完后;                       n
um+1;

运算符顺序
()sizeof ++ –
!
算术运算符
关系运算符
&&
||
赋值运算符
switch语句
switch 语句中case 后必须用整型或字符型
case后可以有多条输出语句;
没有break不会影响编译;
default 放在前面或中间也不会影响编译;但均会影响输出;
小结
表达式是操作数与运算符的集合;
赋值运算符执行顺序是从右到左,优先级最低;
小问题
printf(“abc\n1234\n”)scanf("%s",n);
当函数运行到scanf函数时会读取”缓存区“里的数据,如果缓冲区是空的,他会阻塞住,等待你输入一个字符;然而当他读取完后abcd后,遇到了换行符,停止输入函数,把输入的数据存入变量中,scanf是非常聪明的,会忽略前导的空白符等,但等他忽略了后,缓冲区神魔都没了,所以会等你输入下一个数据,再次回车结束;
excit
强制退出系统 excit (0);
程序无错退出,告诉操作系统正常退出;
随机数产生

#include<Stdio.h>
#include<time.j>
#include<stdlib.h>
int main( )
{
     
 // 用时间做种子,每次产生的随机数都不同 
 srand  ( ( unsugned )  time ( NULL ) ;     //将时间函数放进去,当取NULL是取当前时间;// 
 rand ( ) 取值范围:0-32767printf  ( " %d \n " , rand (  ) ) ;  //若只有rand()则只会生成一个随机数字,所以需要时间计数器更改
 return 0 ;
 }
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务