C语言学习笔记(一)——学前知识概述

将我大一学习C语言时做的笔记拿来与大家分享,内容比较浅显,比较适合初学者,如有错误还请见谅,提出改正,谢谢!


前言:此C语言笔记是本人在自学时记录的一些重点或初学者常犯的错误,是根据郝斌老师的C语言视频进行学习的,在此感谢郝斌老师,对郝斌老师的无私奉献精神致以崇高的敬意。同时,希望我的这本笔记能够对大家的C语言的学习有所帮助。



C语言学习笔记


C语言重点:流程控制、函数、指针、动态内存分配。




 

        第一章、学前知识概述

 


小知识


         1.如何看懂一个程序?


            流程、功能、试数 (按电脑的思维去看一个程序)


         2.变量的实质是内存的一块存储空间


         3.分配内存是操作系统把某一块内存空间的使用权限分配给该程序;


            释放内存是操作系统把分配给该程序的内存空间的使用权限收回,该程序就不能够再使用这一块内存空间。


            注意:分配内存是指内存权限的分配,释放内存并不是把内存的内容清零,原数据会被保留而成为垃圾数据,所谓空    闲内存并不是指没有内容的内存,而是没有被占用的可供分配的内存,尽管里面是垃圾数据,但操作分配给程序权限        使程序可修改内存空间中的垃圾数据以供程序继续使用。


            内存是由操作系统直接控制的,自Windows 2000以后,操作系统不允许程序直接访问内存,而只能通过请求操作系          统来访问内存,以前Windows 98Windows ME等允许程序直接访问内存和通过操作系统访问内存两种途径。


 

 


常见运算符


算术运算符:


+ - × /  %(取余数)


关系运算符:


>  >= <  <=  !=(不等于)  ==(等于)


3==5的值为布尔型,即为0 非零是真零是假;真是1表示,假是0表示。


注意:= 为赋值  == 才为等于


逻辑运算符:


!(非) &&(且)  ||()


注意:逻辑运算符和关系运算符的结果只能为真或假,真用1表示,假用0表示,即成立或不成立。常在ifwhile中使用。


赋值运算符:


= +=(加等)  -=(减等) *=(乘等)  /=(除等)


a+=3 :== a=a+3


a/=5 :== a=a/3


 

(i >= 80 && i < 90)// <= 所得结果为一逻辑值,是布尔型 其值为01,永远小于90,即此式永远成立! 其值永远为真(1


而并不是表示i大于等于80小于90

 


优先级别:算术>关系>逻辑>赋值


注意用括号!!!


 

         int m;


         int k = 10;


         m = (21>3) && (k=5); //m为布尔型值,k=5为真,当且仅当k=0时才为假,即0为假,其他数为真


         printf("m=%d, k=%d\n", m, k);//当左边无法判断m的真假值时,右边才执行;若左边即可以判断m值的真假,右边不执行。


         &&左边的表达式为假时,右边的表达式肯定不会执行


||左边的表达式为真时,右边的表达式肯定不会执行


 


强制类型转化:                                 格式:(数据类型)(表达式)


         inti;


         floatsum = 0;                         功能:把表达式的类型强制转化前面数据类型所指定的类型


        

         for(i=1;i<=100;++i)


                   //sum= sum + 1.0/i;


                   sum= sum + 1/(float)(i);  //强制将i的类型转化为浮点型。


 


         printf("sum= %f\n", sum); //浮点型必须以%f(或%lf)控制输出


 


输入控制符


printfscanf在输出(输入)控制时,前面的控制符与后面的取值是一一对应的。


scanf("%d %d %d", &i,&j, &k);  //空格可连续赋值,也可点回车后一个一个赋值,比较方便。


scanf("%d%d%d", &i, &j, &k);  //而此种带必须输入非输入控制符“,”,否则无法完成三个变量的赋值。

 


doubledelta;



     printf("
请输入delta的值:");


     scanf("%lf",&delta); //上面定义delta为什么类型变量,输入控制时就必须使用什么类型控制符, 否则会出错!!!


 


注意:输入/输出控制符与输入/输出参数必须一一对应


注意scanf()中的取地址符&


 

int 98---默认十进制


int 098---八进制


int 0x(X)98---十六进制


 


输出控制符


%xX: 输出为十六进制整型(字母大小写) %#x(X):输出为Ox(X)十六进制整型


%d:输入输出为整型


%ld:长整型


%hd:短整型


%hu:无符号整型


%u %lu %s:输入输出为字符串


%c:输出为字符


%f:输入输出为浮点型


%lf:双精度浮点型


 

 


字符的存储


整数是以补码的形式转化为二进制代码存储在计算机中的;


实数是以IEEE754标准转化为二进制代码存储在计算机中的;


字符的本质实际也是与整数的存储方式相同。


 




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值