c语言学习第一天笔记

1、内存通常以字节为单位对存储单元按顺序进行编址。内存读写速度比较快,但只能在加电时存储数据。
2、程序的执行,从入口点开始,原则上是由而下,从左而右执行的
3、最小的存储单位为位,它可以容纳两个值,即0或1。
4、1个字节为8位,所以一个8位的字节包含256(2^8)种可能0、1的组合
5、字是自然的存储单位。对于8位微机,一个字正好有8位。对于16位机,一个字的大小为16位。32位机中的字是32位。
6、二进八 3位一组  二进十六   4位一组
7、程序=数据结构+算法+开发工具+程序设计语言
8、#include<math.h>//定义数学函数              
   #include<stdio.h>//定义输入/输出函数          < >表示按照PHTH路径查找头文件," "表示按照当前路径查找头文件
9、\\ 单行注释,\\后面的部分被注释掉不起作用 
   /*       */   多行注释,/*  */里面的部分被注释了
10、在C语言当中,一个程序,无论复杂或简单,总体上都是一个“函数”;这个函数就称为“main() 函数”,也就是“主函数”。
    int main( int argc , char *argr[] )
    agrc 记录输入在命令行字符串个数   *argc[] 存放输入在命令行的命令(一个数组,每个数都是指针)
    shift+%  匹配{}
11、printf(“格式控制字符串”,输出参数);

格式控制字符串包括格式控制字符和其他字符,格式控制字符用输出参数替换,格式控制字符和输出参数一定要数量对应,类型兼容,替换其他字符原样输出

%d 带符号十进制整数                %s输出字符串

%o 无符号八进制整数                 %f     输出含小数,隐含输出6位小数

%x无符号十六进制整数              %e     以指数形式输出

%u无符号十进制整数  %g%f或%e中输出宽度短的一个

%c输出单个字符                         %p      以十六进制输出地址 printf("a=%d,&a=%p\n",a,&a);printf(“a=%d,b=%d”,a,b)

12、转义符号问题:

         转义字符                 含义                     转义字符                       含义

           \n                         换行                        \t                             水平制表
           \v                   垂直制表                       \b                                 退格
           \r                        回车                          \f                                  换页
           \a                       响铃                          \\                                反斜线
           \'     单引号                        \"                                双引号
          \ddd       3位进8进制数代表的字符         \xhh                      2位进6进制代表的字符
          %输出:   %%           \输出    \\
        格式字符   %          ±           m             .n          h/l   
       [开始符]  [标志字符]  [宽度指示符]  [精度指示符]  [长度修正符]  [格式转换符]
默认右对齐,-表示左对齐,+会在数字前显示加号,占用宽度的一位,m数据总长度(包括整数部分,小数点、和小数部分,.n精度(四舍五入)
13、scanf(格式控制字符串,地址列表) & 格式控制字符和地址列表一定要数量对应,类型兼容
           scanf后如果跟scanf("%c")会读取缓冲区里的回车符,解决办法加一个getchar()在前面,或者scanf(“空格 %c”),会过滤掉前面的空格、tab、回车
           char str[20]="hello"; str[0]='h' str[1]='e' str[2]='l' str[3]='l' str[4]='o' str[5]='\0'
           gets() scanf("%s",str)  
                1.scanf("%s",str) 输入遇到空格、tab、回车截断
                2.scanf("%s",str)如果输入字符串长度超出str的长度,会导致错误。
                3.gets()解决了遇到空格截断的问题,但是如果输入字符串长度超出str的长度,会导致错误.
                4.用fgets(char *s, int size, FILE *stream). (stdin  stdout  stderr)
           scanf(" %c"),getchar() 解决scanf会读取缓冲区里的回车问题
14、 类型                       标识符名字              取值范围                  字节数
char                                  字符型               ASCII字符代码                1
unsigned  char               无符号字符型            0至255                       1
signed  char                    有符号字符型         -27 ~ 27-1                  1
int                                     整型                  -231~ 231-1                  4(short int 2)
unsigned  int                  无符号整型              0 ~ 216-1                   4
signed  int                        有符号整型               同int                        4
float                                   浮点                    10-38~1038                4
double                             双精度型               10-308~10308              8(long double 12)
15、+ (加)、 - (减) 、 * (乘) 、 / (除) 和 % (求余数)
    求余数,符号位取除数的符号
   * / %中,任意一个数中为浮点数,则结果为浮点数
16、数据类型转换:
        强制转换:     (double)a;    (int)(x)+y;先把x的值转换成int型,然后再加y
        隐式转换:
        数据参加运算前要进行下列转换:  char,short→int,float→double
        混合运算时数据类型由低级→高级   int  unsigned   long   double
17、赋值运算符结合率为:“自右而左”。
18、自增自减运算符:
        ++i  ,  --i     先自增或自减,i=i+1,a=i;
        i++  ,   i--    后自增或自减,a=i,i=i+1;
19、 条件表达式的一般格式为:
    表达式1  ?  表达式2  :    表达式3       
            运算过程:表达式1的结果为真(非0)时,表达式2的计算结果作为条件表达式的值;否则,取表达式3的计算结果为条件表达式的值,条件运算符的结合率为:“自右至左”。
20、逗号运算符:  ,
  格式: 表达式1, 表达式2, 表达式3, LL, 表达式n
      从左向右计算每个表达式的值,逗号表达式的值为表达式n的值。
21、短路性质: && || &&中如果第一个条件不成立,则不会再往下执行,||第一个条件成立,也不会继续往下运行
22、  优先级   运算符                                             综合性

              1                                 () [] ->                                           自左向右

              2       ! ++ -- & # 正号 负号 ~ 类型 sizeof 指针                   自右向左

             3                                  * / %       自左向右 

             4                                   + -                                                自左向右

             5                               << >>                                              自左向右

             6                              < <= > >=                             自左向右

             7     == !=                                                自左向右

             8    按位与                                                自左向右

             9      按位异或                         自左向右
             10                                按位或                                               自左向右
             11                                 &&                                                  自左向右
             12          ||                                                      自左向右
             13      ? :                                                    自右向左
             14        = += -= *= ?= %= &= ^= |= <<= >>=                    自右向左
       15                                     ,                                                     自左向右
23、定义语句
       #define XX 10           宏定义
        typedef int int32;      类型定义
       例 typedef char *STRING;     STRING name,sign;相当于 char *name,*sign;
           #define STRING char*      STRING name,sign;相当于 char *name,sign;
24、if语句
  if(...) 括号里的判断语句为真执行
{
  ...
 }
  else if(...)
{
  ...
}
else
{
  ...
}
25、switch语句

      switch(...)多分支选择

        {         如果不带break,则一直往下执行,知道遇到下一个break为止;

             case 常量表达式1:语句1;break;
             case 常量表达式2:语句2;break;
             case 常量表达式n:语句;nbreak;
                  default:语句n+1;break;
       }
26、while(...)语句    
            当表达式为非0值时,执行while语句中的内嵌语句。先判断表达式,后执行语句。
27、do-while语句  
              do     
              循环体语句
              while (表达式); 先执行循环体,然后判断循环条件是否成立,注意后面加‘;’
28、for循环
               先求解表达式1;再解表达式2,若为真(非0)值,则执行语句,然后求解表达式3,再转到求解表达式2。若为假(0)值,则结束for语句的执行
          for(表达式1;表达式2;表达式3)      可以省略表达式1,但应保留分好                       
          {            若省略表达式2,不判断循环条件,死循环                    
             ...                                                                 若能保证正常结束循环,可以省略表达式3                       
          }            表达式1和3可以是逗号表达式,表达式2为关系表达式或逻辑表达式  
29、continue语句   
              作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定.
30、break语句  
               break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句
31、在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值