- 博客(26)
- 资源 (11)
- 收藏
- 关注
原创 2-9 const 和 Volatile分析
const只读变量,在C语言中const修饰的变量不是真正的常量,他只是告诉编译器该变量不能出现在赋值符号的左边- const修饰的变量时只读,本质还是变量;- const修饰的局部变量在栈上分配空间;- const 修饰的全局变量在全局数据区分配空间;- const只有在编译期有用,在运行期间无用;在现在C语言编译器中,修改const全局变量将导致程序奔溃- 注意:标准C语言编译器不会将const修饰的全局变量存储与只读存储区域中,而是存储与可修改的全局数据区,其值依然可...
2020-07-29 23:24:12
224
原创 2-8 goto语句和void分析
遭人唾弃的goto - 高手潜规则:禁用goto - 项目经验:程序质量与goto的出现次数成反比; - 最后的判决:将goto打入冷宫goto的副作用,示例如下:#include <stdio.h>#include <malloc.h>void func(int n){ int* p = NULL; if( n < 0 ) { goto STATUS; } p = (int*)...
2020-07-29 09:07:35
119
原创 2-7. 循环语句
循环语句的基本工作方式 - 通过条件表达式判定是否执行循环体; - 条件表达式遵循if语句表达式的原则;do,while,fo的差异: -do语句先执行后判断,循环体至少执行一次; -while语句先判断后执行,循环体可能不执行; -for 语句先判断后执行,相比while更加简洁;break和continue语句的区别:-break 表示终止循环的执行;-continue表示终止本次循环,进入下次循环;do 和break的妙用,示例...
2020-07-27 23:41:37
126
原创 2-6 分支语句
if语句用于根据条件选择执行语句,else不能独立存在且总是与他最近的if相匹配,else语句后可以链接其他if语句;if语句中的零值比较注意点:- bool型变量应该直接出现于条件中,不要进行比较;bool b = TRUE;if( b ){}else{}-变量和0值比较时,0值应该出现在比较符号的左边:int i=1;if( 0==i ){}else{}-float型变量不能直接和0比较,需要定义精度:#define EPSINON
2020-07-24 22:56:36
73
原创 2-5. 变量属性
C语言中的变量可以有自己的属性在定义变量的时候加上属性关键字:auto关键字:-auto即C语言中的局部变量的属性;-auto表明将被修饰的变量存储在栈上-编译器默认所有的局部变量都是autoregister关键字-register关键字指明将局部变量存储于寄存器中;-register变量只是请求寄存器变量,但是不一定请求成功;-register变量必须是CPU寄存器可以接受的值;-不能用&运算符获取register变量的地址;#include <s
2020-07-24 22:42:38
66
原创 2-4 类型转换
在C语言中的数据类型是可以相互转换--强制类型转换 -(Type)var_name; - (Type)vaule; 目标类型能够容纳目标值:结果不变 目标类型不能够容纳目标值:结果产生截断(不是所有都能强制转换成功)--隐式类型转换 编译器主动进行的类型转换,低类型到高类型的隐式类型转换是安全的,不会产生截断; 高类型到低类型的转换是不安全的,导致结果不正确; 类型从低到高如下: 标准C编译器的类型检查是比较宽松的,因此隐...
2020-07-23 23:46:15
107
原创 2-3 浮点数的秘密
先看下一下代码:int main(){ printf("sizeof(int) = %d\n",sizeof(int)); printf("sizeof(float) = %d\n",sizeof(float)); return 0;}打印结果如下:同样是占用4字节空间,为何int的表示范围是-2147483648~2147483647;而float类型的表示范围是-3.4*10^38~3.4*10^38;明显float表示的范围要比int广,这是为何?因...
2020-07-23 23:33:46
242
原创 2-2 有符号数和无符号数
数据类型的最高位用于表示数据的符号:-最高位为1,表明这个是个负数-最高位为0,表明这个数是正数;示例:#include <stdio.h>int main(){ char c = -5; short s = 6; int i = -7; printf("%d\n", ( (c & 0x80) != 0 )); printf("%d\n", ( (s & 0x8000) != 0 )); printf("%d...
2020-07-22 09:12:02
532
原创 2-1.基本数据类型
数据类型可以理解为固定内存大小的别名,类似:char 1byteshort 2byteint 4byte程序中通过变量来申请并且命名存储空间,通过变量的名字可以使用存储空间;示例:#include <stdio.h>int main(){ char c = 0; short s = 0; int i = 0; printf("%d, %d\n", sizeof(char), sizeof(c)); printf("%d, %...
2020-07-19 23:37:37
580
原创 17. break和continue
在论break:-break能够强制结束当前结构,组织程序向下执行-switch分支选择结构,break立即结束switch;-循环结构,break立即结束循环(忽略循环条件的真假)举例:#include <stdio.h>int main(){ int sum = 0; int i = 1; while(1) { sum = sum + i; if(i==100) break;...
2020-07-18 18:52:16
236
原创 16. do...while 和 for
do{ //循环内容}while(条件);- do 是循环的开始,while是循环的结束- do...while可以看作一条语句,需要以分号结束;-do...while是否继续循环依赖于括号中的循环条件;-do...while至少执行一次;for循环结构(更加简洁的循环结构)for(0.初始化循环变量;1.循环条件;3.改变循环变量){ 2.循环体}执行顺序按照按照上面结构体中的序号,for循环各个部分(0,1,2,3)都是可选的...
2020-07-18 18:12:00
61
原创 15. while语句编程练习
练习一:编写程序,求2^2+4^2+6^2+......+n^2 直到累加值大于或者等于10000为止,输出累计和; 输出累加式中的项数i以及最大的数n#include <stdio.h>int main(){ int sum=0; int i=0; int n=1; while(sum<=10000) { n = n*2; i++; sum =sum + n*n;...
2020-07-16 22:37:09
875
原创 14. 程序中的循环结构
循环结构也是日常经常遇见的场景,用于表示日常的一个循环和反复,C语言使用while表示循环结构;示例1,计算1+2+...+100的值:#include <stdio.h>int main(){ int sum=0; int i=0; while(i<=100) { sum = sum + i; i++; } printf("sum = %d\n",sum); printf("i = %d...
2020-07-15 23:53:22
248
原创 13. switch多分支选择语句
1. switch是一种更加简洁的多分支选择语句 仅仅适用于整数型离散变量或值; case是分支入口,匹配成功之后会执行case下的语句; 当语句全部执行后,必须使用break跳出执行分支; default分支不是必须的; 多个case可以合并在一起使用,执行相同的语句示例见12课的练习三...
2020-07-15 23:38:45
501
原创 12. if语句编程练习
练习1:输入两个整数,分别放入变量x和y中: 如果两个数不相等,输出较大的数,如果两个数相等,输出字符串x==y#include <stdio.h>int main(){ int x,y; printf("input x :"); scanf("%d",&x); printf("input y :"); scanf("%d",&y); if( x!=y ) { printf("the ...
2020-07-15 08:46:32
1207
原创 11.程序中的选择结构
C 语言中的选择结构:if(condition)//条件位逻辑值{}else if{............}else{..........}if...else...裁剪和组合-裁剪 if可以不带else分支,条件位真,则执行对应的语句; if和else都可以不适用{},此时每个分支只对应一条语句;-组合 else后的语句可以是另一个if...else... 多个if...else...组合在一起可描述多路选...
2020-07-14 00:12:37
198
原创 10. 深度剖析位运算
1. short 和 int 的表示范围不同,本质差异是什么? --占用内存空间不同,short占用2byte,int占用4byte; --表示具体数值数据的方式不同,正数用原码表示,负数用补码表示; ---整形数和浮点数的二进制表示不同;...
2020-07-14 00:02:47
91
原创 9. 逻辑运算与位运算
1. 逻辑运算(&&,||,!) 逻辑运算的参与者为逻辑值(真或者假),任何非零值均为真,任何零值均为假2. 逻辑运算中的短路法则 (1)对于&&操作,从左向又,如果有一个操作数为假,则整个表达式为假,第一个操作为假的操作之后,其他操作数不计算; (2)对于||操作,从左向右,如果有一个操作数为真,则整个表达式为真,第一个为真之后,其他操作数不进行计算;3.取非操作(!) 单目运算,运算结果为逻辑值,对真值取...
2020-07-13 23:33:27
307
原创 8. 四则运算与运算关系
C语言中支持下面4种类型的运算: (1)四则运算:+ ,-,*,/,%;(遵循先乘除后加减) (2) 关系运算:<,>,<=,>=,==,!=;(比较两个值的大小结果返回:真或者假) (3) 逻辑运算:&&,||,! (4) 位运算: &,|,^,>>,<<,~运算优先级,优先级从高到低:-四则运算 正负号 > 乘...
2020-07-12 23:37:28
321
原创 7 程序中的数据输入
如何使用C语言从键盘输入数据: stdio.h工具包里面提供一个数据输入工具scanf 注意事项: scanf中的格式化字符不能包含其他无关字符; scanf中格式化字符必须与对应的变量类型一致;#include <stdio.h>int main(){ int i=0; printf("please enter a number\n"); scanf("%d",&i); printf("...
2020-07-12 23:10:38
197
原创 6. 类型与变量编程练习
练习1:如何交换两个变量的值:考虑使用第三个参数:#include <stdio.h>void swap(int* a,int* b){ int temp; temp = *b; *b = *a; *a = temp;}int main(){ int a = 1; int b = 2; printf("before swap,a=%d , b=%d\n",a,b); swap(&a,&b); prin...
2020-07-12 22:37:12
138
原创 5. 深入数据类型与变量
不同类型之间的赋值 (1)大类型赋值给小类型的情况下,可能发生溢出; 当数值在小类型范围内->赋值成功; 当数值超过小类型的范围->发生溢出; (2)小类型可以安全的赋值给大类型; (3)浮点类型赋值给整形,会发生截断(小数部分丢失); (4)整形赋值给浮点类型,能够成功完成;示例:#include <stdio.h>int main(){ int a ...
2020-07-12 22:10:58
76
原创 4. 数据类型与变量(下)
1. C语言中变量的命名规则: (1)由字母(a-z,A-Z),数字(1-9)或者下划线(_)构成; (2)第一个字符必须为字母或者下划线; (3)大小写敏感;2. 变量赋值 改变变量所代表的值的操作叫做赋值操作;3. 变量的初始化 在创建变量(定义变量)的同时,显示指定一个初始值; 创建之后没有初始化的变量,其值为随机值;示例:#include "stdio.h"#define PI 3.24int main...
2020-07-12 21:54:33
84
原创 3.数据类型与 变量(上)
C语言根据数据的特点进行了分类,比如:1.整形 int 、short siged short 表示的范围是-32768~32767,(short占内存2byte,所以对应的表示范围为-2^15~2^15-1) unsiged short 表示的范围是0~65535,(short占内存2byte,所以对应的表示范围为0~2^16-1) int表示的范围为-2147483648~2147483647(int占空间4byte,对应的范围与short类似)2. 浮点型 floa...
2020-07-12 21:39:25
74
原创 2. C语言的输出
通过C语言指挥计算机在屏幕上打印文本: C语言中内置了很多实用的工具包,工具包有一个固定的名字通过名字进行使用(#include) 每个工具包都提供了非常多的小工具使用: 比如:stdio.h工具包里面提供了一个打印函数printf printf通过正确设置后能够在屏幕上打印文本;举个例子:计算实数的乘法 0.3*0.7 输出0.3*0.7=0.21#include "stdio.h"int main(){ float ...
2020-07-12 00:08:21
161
原创 1. C语言“Hello Word”
1. C语言程序是怎么开始执行的,并且以什么方式执行呢? 一般来说C语言程序是从main()函数开始执行的; 默认情况下,C语言程序以自上而下顺序结构执行;执行的基本单位是语句,每一条语句使用分号(;)分隔开; 示例代码如下:```javascript#include "stdio.h"int main() //C 语言执行的起点{ return 0;}```2. C语言实际上是如何实际执行的? ...
2020-07-11 18:20:02
343
C++文件基本的单线程网络编程
2011-08-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人