学习c语言两个月后的收获(篇目一) #printf 、占位符、转义字符、ASCII码值、32个关键字、语句分类

对于printf(一个库函数):

print(打印) +format(格式化) --> printf 可定制的输出文本格式

使用时要引用头文件 <stdio.h>

1.占位符

占位符的第一个字符一律为%,第二个字符表示占位符的类型。

printf("abcd"); // 打印字符串 
printf("%s","abcd");// 这两种写法的效果一样,字符串的末尾自带‘\0'

   打印字符 eg.’w‘ (q的ASCII码值是88):

  方法一: printf("%c" , 'x');

  方法二:printf("%c",88);

  方法三:printf("%c",'\130');

(ps.方法二与方法三实质上就是ASCII码值十进制与八进制的表现形式)

PS.因为计算机中的数据均以二进制的形式存储起来,有人就为字符编号码,故字符的本质就是ASCII码值,即用相应的ASCII码值就可以打印相对应的字符。

      printf("%d",2); // 打印整型  

      printf("%f",i);  //打印float类型的数据

      printf("%lf",i);  // 打印double类型的数据 :

      printf("%zd",sizeof(int)); //打印sizeof的返回值 ,ps.sizeof的单位是byte

  %e 、%E  -->  使用科学计数法的浮点数

printf("%e",123.4567); //1.234567e+02
printf("%dE:,123.4567); //1.234567E+02

 %hd --> 十进制的short int 类型

%ld --> 十进制的 long int 类型

%lu  --> unsigned long int 类型

%Lf --> long double 类浮点类型

%p --> (指针)用来打印地址

%u --> 无符号整型 unsigned int 

%x --> 十六进制整数

%zd --> size_t类型 (sizeof的返回值)

2.printf()允许限制占位符的最小宽度

 a.%5d --> 表示这个占位符的宽度至少为5,且默认向右对齐。如果元素不足就用空格补上

  想要改成向左对齐--> 在 ' % ' 后面添加一个 ' - ' --> %-5d

b.在 ' % ' 后面添加一个 ' + ' 就可以让数值总是显示正负号

printf("%5d",123); // 输出为"  123"  限制了占位符的最小宽度,且默认向右对齐,元素不够,空格来补

printf("%5d",123456) ; 输出为"123456" 当元素的个数比占位符的最小限制数大时,照正常的输出

printf("%-5d",123); //输出为"123  "  ;在%之后加一个- ,就可以改成向左对齐

printf("%+5d",123);  //输出为" +123"

printf("%+5d",-123); //输出为" -123"

c.对于小数,此限定符会限制所有数字的最小显示宽度。(小数部分的位数与类型有关)

printf("%10f",12.34); //输出为" 12.340000" 小数点之后只有6位,
                                        //而元素不够就会在补空格,默认左对齐

d. 专门限定小数点后的位数(这里与整数不同,小数会四舍五入)

printf("%7.3f",12.3); //输出为" 12.300"

e.动态地定义占位符所控制的宽度 --> 用 ' * '

int i = 0;
int j = 0;
scanf("%d %d", &i , &j );
printf("%*.*f", i , j , 12.3 );

3.printf() 的返回值是成功打印元素的个数

printf("%d",printf("%d",123)); //输出为"1234"

对于转义字符:

1.\?  -->三字母词 避免将 ??) 编译成 ] --> 写成\?\?)

2.\'  --> printf("%c",'''); 计算机会将前两个’认为一对,而无法成功打印‘ --> 正确写法 printf("%c",'\'');

3.\''  -->与上一点同理

3.\\  -->用于表示一个反斜杠,防止它被解释为一个转义序列符

4.\a  -->警报 

5.\b  -->退格符,光标退回一个字符,但是不会删除这个字符(除非'\b' 后面有元素

有点像打字时选择了前一个字符,当你要往后继续输入时,后面输入的这个字符会将选择区域的字符给取代,后面输入的这个字符会将\b前一个字符给取代

可以发现 g 没了

6.\f  -->换页符:光标移动到下一页,但是在现代的系统上已经反映不出来了,行为改成类似于 \v

7.\n  -->换行符

8.\r  -->回车符,光标移动到同一行开头

9.\t  -->制表符,光标移动到下一个水平制表位,通常是下一个的4或者8倍。相当于按了键盘上的Tab键,通常宽度相当于8个或者4个空格的位置。

这里看到空格的数目在随着\t前面字符的增加而减少

如果\t前的字符数大于8呢?(下面数空格可以根据下排的字符进行对应)

"ilovecho"这8个字符为一组,而后面的"ng"与6个空格为一组.

10.\v  -->垂直分割符,光标会移动到下一个垂直指标位,通常是下一行的同一列

11.\ddd  -->ddd表示1-3个八进制的数字

eg. 

八进制130-->十进制88-->ASCII码值所对应的字符

Tips:要注意八进制的数 :0-7

上图,存在'\61'、'8'、'\223'这三个字符

12.\xdd  -->dd表示2个十六进制的数字(与\ddd同理)


关于ASCII码值:

梳理:(按十进制的ASCII码值)

0-31  -->不可打印字符

10  --> '\n'

48-57  -->数字0-9

65-90  -->大写字母A-Z

97-122  -->小写字母a-z


c语言的32个关键字:

1.auto :自动的意思,所有的局部变量之前都会有一个auto,只不过被省略掉了。

int a = 0; --> auto int a = 0

因为局部变量进入它所在的作用域便会自动创建,而出了这个作用域就会自动销毁-->a位自动变量

故而所有局部变量均为auto 类型,且auto 可以省略

2.const :用来修饰变量,表示常属性(ps.常属性:不能被更改的属性)

3.与类型相关:

内置类型:char    short    int    long   long long   float   double  signed   unsigned 

(Tips:  1.int 默认为 signed int ;而char 要看系统版本,有可能默认char 为signed char 也有可能为 unsigned char

2.signed 表示正负数均可 ;unsigned 只能表示正整数)

自定义类型: enum --枚举

                      struct -- 结构体

                     union -- 联合体(共用体)

其他:void -- 无的意思(一般用于函数的返回值类型,函数的参数)

           sizeof -- 计算大小(在内存中所占空间)的关键字

           typedef  -- 类型重命名

4. extern -- 申请外部符号

   register -- 寄存器的关键字(限制一个变量-->可以将这个变量存储到寄存器之中)

如上图。CPU作为中央处理器,计算的数据是从寄存器中取得的。当寄存器在处理某些数据的时候,内存中的数据就可以往高速缓存中拿,而高速缓存中的数据也可以往寄存器中拿(保证大部分的数据能在寄存器中被找到)-->这样就可以大大提升CPU的计算速度

我们在编写的时候,可以创建一个register变量,将我们认为会被大量使用的数据放到寄存器之中-->但是仅为一个建议作用,能否将这个数据放到寄存器中还是编译器说了算

  static  -- 静态的(可以修饰函数跟变量)-->决定了一个变量的存储位置(若用static,那么此变量就存在静态区)

  return -- 函数的返回值


c语言的语句分类:

空语句、表达式语句、函数调用语句、复合语句、控制语句

1.空语句:当格式要求在某个位置需要放置一个语句的时候,但是又不想让它执行任何-->就可以使用空语句-->这个语句不需要做任何事

2.表达式语句 : 

int a = 1;
int b = 2;
b = a + 6; //表达式语句,从右往左运算--> b= 7;

3.函数调用语句

#include<stdio.h>

int Add(int a,int b)
{
   return a+b;
}

int main()
{
   int a = 1;
   int b = 2;
   int ret = Add(a,b); //函数调用语句
   printf("%d",ret);  //函数调用语句

 return 0 ;
}

4.复合语句

成对括号中的代码所构成的一个代码块

5.控制语句

控制程序的执行流程,以实现程序的各种结构方式

a.条件判断语句(分支语句) : if 语句 , switch 语句

b.循环执行语句 : do while 语句、 while语句 、for 语句

c.转向语句 : goto 语句、break 语句 、continue 语句、 return 语句

  • 43
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值