C语言速通笔记(全)(600粉回馈)

news/2024/7/23 11:05:00 标签: c语言, 笔记, 算法

C语言速通课笔记

  1. 一个C语言程序有且只有一个main函数,是程序运行的起点。
  2. 每个C语言程序写完后,都是先编译 .c后链接.obj最后运行..exe
  3. .c和.obj文件是无法运行的,只有.exe文件才可以运行
  4. 标识符由字母,数字,下划线组成并且第一个必须为字母或下划线
  5. 标识符分为关键字,预定义标识符,用户标识符
  6. 严格区分大小写
  7. 尽量采用能说明程序对象意义的标识符
  8. 十进制转化成二进制除以二倒序取余,小数部分是乘以二正序取整
  9. C语言只有八,十,十六进制,没有二进制;但在运行的时候所有的进制都要转化成二进制来进行处理
  10. 八进制是以0开头的,没有8,逢8进1
  11. 十六进制是以0x开头
  12. 小数的合法写法:C语言小数点两边有一个是零的话,可以不用写,如:0.3可以写.3
  13. 实型数据的合法形式:e前e后必有数,e后必为整数
  14. 整数和浮点型型一般是4个字节,字符型是1个字节,双精度型一般是8个字节
  15. /两边都是整形的话,结果就是一个整形,如果有一遍是小数,那么结果就是小数,小数默认的是双精度形式,一共有八位
  16. 如果参加运算的两个数中有一个数为实数,则结果是实数
  17. %只能对整数进行操作
  18. 在定义时不可以连续赋值如:int x=y=10是错误的
  19. 等号的左边一定是一个变量,不可以是常量
  20. int x=7.7(那么x的值是7)
  21. float y=7(那么y就是7.0)
  22. ++在前先加后用,++在后,先用后加(一般在for循环用)
  23. 逗号表达式:优先级别最低。表达式的数值是逗号最右边的那个表达式的数值
  24. z=(2,3,4)这个时候z的值为4,整个是赋值表达式
  25. z=2,3,4这个时候z的值为2,这个是逗号表达式
  26. x=(a=3,6×a)        a=3  x=18
  27. x=(a=3×5,a×4)      表达式的值30,x=60
  28. 空语句不可以随意执行,会导致逻辑错误
  29. 要注意(int)(a+b)和(int)a+b的区别
  30. 三种取整丢小数的情况 1.int a等于1.6,2. b=(int)a 3. 1/2
  31. 字符数据的合法形式:'1'是字符,占一个字节,"1"是字符串占两个字节(其中含有一个结束符号)
  32. '0'是ASCLL数值表示48,'a'的ASCLL的数值是97,'A'的ASCLL数值是65
  33. 单个字符一定要用单引号
  34. ,俩个字符及以上一定要用双引号如:'65',"1"是错误的形式
  35. 字符是可以进行算数运算的,记住'0'-0=48
  36. 大写字母和小写字母的转化方式'A'+32='a',相互之间一般是相差32
  37. 转义字符分为一般转义字符,八进制转义字符,十六进制转义字符(和ASCLL码相关)
  38. 一般转义字符:背诵\t(指的是电脑上的tab键,水平制表键,空四格)\n换行,\'代表\,\"代表",\\代表\\
  39. 八进制转义字符:'\141'是合法的,前面的0不能写
  40. 十六进制转义字符:'\x6d'才是合法的,前面的0不能写,而且x是小写
  41. 字符型和整型是近亲:两个具有很大的相似之处,所有的字符都有一个它对应的整形数据的ASCLL的数值。如 char a =65  %c之后输出为A,%d输出为65
  42. 使用printf和scanf函数的时候,要在最前面加上#include〈stdio.h〉
  43. printf可以只有一个参数,也可以有两个参数
  44. %d输出的十进制数
  45. %o输出的是八进制,但是不好辨认输出的是八进制还是十进制一般用%#o(带前导的八进制)
  46. %x表示的十六进制,但是不好辨认,所以我们一般用%#x
  47. 数据转化 %md,如果数据的位数小于m,则左端补空,若数据位大于m,则按实际长度输出
  48. 数据转化 %m.nf 如果数据的位数小于m,则左端补空(0);如果数据位数大于m,则按实际长度输出。小数位数被截断时按四舍五入输出
  49. 在scanf中加&是取地址,加*是取数值,所以不能在里面输指针
  50. scanf可以指定输入长度如:终端输入1234567 scanf("%2d%4d%d",&x,&y,&z);x为12,y为3456,z为7(如果输入空格的话,空格也占一位)
  51. 在scanf中超过规定的长度,按原长度输出如:终端输入12,scanf("%d",&x),x为12
  52. 输入时候字符和整数的区别  scanf("%d",&x);这时候输入1,特别注意表示的是整数1       scanf("%c",&x);这时候输入1,特别注意表示的是字符'1'ASCLL为整数49(如果你想让它以整形数据来表示的话)
  53. putchar 和 getchar函数的考察(因为都有一个char,所以它操作的只有一个字符型的数据)
  54. char a =getchar()是没有参数的,从键盘得到你输入的一个字符给变量a
  55. putchar('y')把字符y输出到屏幕上
  56. getchar一次只能输入一个字符,如果你想输入多个字符的话,就要用到gets
  57. 一定记住=是赋值,==才是等号
  58. !运算,如果0取非是真的,任何非0数字取非它的结果都为假(任何非零数字取非之后都为1
  59. switch只可以和break一起用,不可以和continue用
  60. switch(x)  x:是整形常量(1,2,3......),字符型常量(a,b...),枚举型数据(Monday ...)
  61. for只管后面的一个语句
  62. while(真条件),程序才会往while里运行
  63. 指针变量的本质是用来放地址的,而一般的变量是用来放数值的
  64. *p在用过之后,后面可以直接用p
  65. *p是去取数值,p=&x则是取地址
  66. *p可以当做变量来用,*的作用是取后面地址p里面的数值
  67. *p++是地址变化
  68. (*p)++是数值发生变化a(因为++的优先级高于*)
  69. *p:一级指针:存放变量的地址
  70. **q:二级指针:存放一级指针的地址(不可以放变量的地址,只能放一级指针的地址)
  71. **q=&x的写法是错的,因为二级指针只能放一级指针的地址,不能放变量的地址
  72. 数组名是不可以自加的
  73. 在一维数组中,a是一维数组名,所以它是列指针,也就是说a+1是跳一列(往左跳)
  74. 在二维数组中,a是二维数组名,所以它是行指针,也就是说a+1跳一行
  75. 记住以下形式:a(2)变成*(a+2)
  76. a[2][3]变成*(a+2)[3],再可以变成*(*(a+2)+3)
  77. 字符串:strlen()字符串测长度其中str是字符串,len是长度
  78.         strcat()字符串连接函数
  79.         strcmp()字符串比较函数
  80.         strcpy()字符串拷贝函数
  81. sizeof查看是内存的形式,比如一个int四个字节,而strlen只是看字符串有多长的操作
  82. 函数指针的用法:add(int x,int y)  f=add赋完值之后,合法的调用形式为add(2,3)或f(2,3)或(*f)(2,3)
  83. scanf不能接受空格
  84. gets你输入啥它就接受啥
  85. 在预处理中〈〉是C语言里面有的一个库,如果你想自己写一个文件的话用""
  86. 一个文件必须要有main函数是错的,因为每一个c程序必须要有,而你直接写的一个函数可以没有
  87. 头文件一定是以.h结尾吗,不是,.h结尾的是系统给你的,你自己写的话一般用.c


http://www.niftyadmin.cn/n/5245559.html

相关文章

前端:让一个div悬浮在另一个div之上

使用 CSS 的 position 属性和 z-index 属性 首先,将第二个 div 元素的 position 属性设为 relative 或 absolute。这样可以让该元素成为一个定位元素,使得后代元素可以相对于它进行定位。 然后,将要悬浮的 div 元素的 position 属性设为 ab…

❀My学习Linux命令小记录(16)❀

目录 ❀My学习Linux命令小记录(16)❀ 61.who指令 62.sleep指令 63.kill指令 64.top指令 65.diff指令 ❀My学习Linux命令小记录(16)❀ 61.who指令 功能说明:显示目前登录系统的用户信息。 (ps.who命…

南京大学计算机学院面试准备

该内容是我面试南京大学计算机学院保研的时候的准备题目,最后是面试的时候问到的问题。 目录 1. 自我介绍2. 进程和线程的区别3. 循环引用4. 操作系统怎么利用多核?5. 英文介绍二叉搜索树6. 英文介绍二叉搜索树的时间复杂度7. 介绍 stackover flow8. 什…

Java开发项目之KTV点歌系统设计和实现

项目介绍 本系统实现KTV点歌管理的信息化,可以方便管理员进行更加方便快捷的管理。系统的主要使用者分为管理员和普通用户。 管理员功能模块: 个人中心、用户管理、歌曲库管理、歌曲类型管理、点歌信息管理。 普通用户功能模块: 个人中心…

java正则表达式字母开头后面跟12位数字

字母开头后面跟12位数字 ^[A-Za-z]\d{12}$ 验证: 验证工具地址: Java正则表达式测试

简单实现Spring容器(二)

阶段2: // 1.编写自己的Spring容器,实现扫描包,得到bean的class对象.2.扫描将 bean 信息封装到 BeanDefinition对象,并放入到Map.思路: 1.将 bean 信息封装到 BeanDefinition对象中,再将其放入到BeanDefinitionMap集合中,集合的结构大概是 key[beanName]–value[beanDefintion…

面试官:Java引用类型有几种?

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》&…

css弹窗动画效果,示例弹窗从底部弹出

从底部弹出来,有过渡动画效果 用max-height可以自适应内容的高度,当内容会超过最大高度时可以在弹窗里加个scroll-view 弹窗不能用v-if来隐藏,不然transition没效果,transition只能对已有dom元素起效果,所以用透明和v…