C语言学习记录(学校上课版)

书:C程序设计基础 浙江科学技术出版社

第二章——基本数据类型与常用库函数:

  1. 转移字符表和ASCII表大致要知道,要考;最经典的是a与A的ASCII码相差32,不要想当然以为是24个英文字母
  2. 对于字符,单引号内表示单个字符,如:‘a’,双引号表示字符串,如“a”,格外注意,单个字符也可作为字符串,因为里面默认有个/0的存在
  3. 1个字节包含8个位
  4. char类型占8个位,short占16位,int、long占32位,它们前面加unsigned并不改变数据长度,只是数值范围没了负数,float占32位(4字节),double占64位(8字节)
  5. 整型数据的数值范围需要掌握,包含科学计数法版本和精确数字版本,除了unsigned long的精确数字不做要求。
  6. #define定义时不算完整句子,后面不打分号
  7. getchar()与putchar()的用法:getchar()用于读取用户从键盘输入的单个字符,目前不用太在意它的作用,getchar用到了缓冲区的知识。
    getchar():单独使用可以使屏幕停住
    getchar()的作用(试着读读)
    C语言中的getchar()与putchar()详解
{
	char c;
	c=getchar();
	putchar(c);
}
  1. C语言中的格式控制符,目前用在scanf与printf中,最常用的格式控制符就是%d里面的%,如果scanf中用%d但是输入的实型数据,那么会自动去掉小数点后的(如果有的话),printf类似
    C语言格式控制符和转义字符
//极端例子(单纯是为了学习格式符,没多大意思)
char ch = '$';
float x = 153.45;
printf("%c%-8.2f\\n",ch,x);
//输出结果是$153.45  \n
/*“\”前面空了两格,%-表示左对齐,共8位,小数点也算一位,数字部分有5位,所以共有6位,
又因为有左对齐的存在,所以共需要8位,最后两位用空格补齐*/
  1. 对变量进行类型声明,一句语句只能只能申明一种数据类型。

  2. short类型占16位,可以赋给short类型的最大值32767,最小值为-32768,这个是怎么计算出来的?最小值的最高位是一个隐藏有效位,按照负数的机内码法则是算不出来的,所有可以认为是定义的。

  3. 命名变量只能包含大小写字母、下划线、数字,但是开头只能是大小写字母、下划线,不能以数字开头,而且不能包含一些另外的奇怪字符,如“# & % ”等;且不能是保留字,意为有特殊含义的字符,如const、case

  4. 不同数据类型的数据相互赋值可能会出现的问题:C语言中不同类型数据之间的赋值

  5. 头文件中<>与""都可以用,只不过后者容易出现输入中文输入法但没察觉的情况,但是后者的范围更广,因为它会优先从当前文件夹找起。
    C语言头文件<>和""的区别

  6. 实参、形参的区别:以我的话来说,形参时未知量,实参是具体的值
    资料一:形参和实参的区别

  7. 关于连续赋值:第一种是错误的,不被允许;但是第二种是可以的

//第一种
int a=b=c=10;
//第二种
int a,b,c;
a=b=c=10;
  1. 左对齐与右对齐:拿printf来举例子,更好说明,默认是右对齐的。
    资料一:关于printf输出之左对齐与右对齐

  2. 实型数据:指float、double两种

  3. double数据类型可以用%f输出,但是不能用%f输入,输入必须是%lf
    资料一:double变量可以用%f输出

  4. 单精度浮点数float有效长度为7位(总共,包含小数点前后),双精度浮点数double有效长度16位。

  5. 最初已经定义过int了,后面不能再重复定义这个变量,不然会报错,出现expected expression

第三章:运算符和表达式

  1. scanf输入数据是不能规定小数点后几位的。
  2. 关于++i与i++,两者不存在先后,从左往右;i++是先参与运算(指的是把此时未加1的i进行运算,再加1),++i是先对此时此刻的i+1,然后将+1后的值赋给i,进行后续运算。
//上课困扰我的例子
int a =3 ;
int b = --a+--a+a++;
printf("%d",b);
//输出3

资料一:(x++)+(++x)的运算理解

  1. 在判断真值时,并不是说只有“1”才是真值,非0的结果都表现为真。
  2. 条件表达式格式
    ( 逻辑表达式?表达式1:表达式2)
    用得很少,但仍需要掌握,一般在比大小并赋值时使用。
max = a > b ? a : b
//如果a大于b,逻辑表达式为真,把a的值赋给max
//如果a小于b,逻辑表达式为假,把b的值赋给max

  1. fabs求绝对值函数:fabs用于浮点型,abs用于整型;
    但是fabs用于int,会存在一个强制转换在里面,也是可以用的,只不过不是很推荐。

  2. 在进行模运算时,如果叫模数和被模数,模数是不能为小数的,必须是整数。

  3. ' X ' == " X "这是错误的,因为双引号表示的是字符串,字符串最后一位是“|0”,它也是有ASCII码的,所以两者的ASCII码是不一样的。

  4. Visual C++ 6.0软件的使用,写好程序后,先是编译生成obj文件(目标文件),再是连接生成exe文件(可执行文件),然后可运行。

  5. 运算符的优先级(简版):
    ①!(逻辑非)
    ② * / % (乘除取模)
    ③+ -
    ④ >.<.>=.<=
    ⑤ ==.!=
    ⑥&&(逻辑或)
    ⑦||(逻辑非)

  6. 累加、累积:+=、*=

第四章:流程控制

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值