栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C笔记—一些用法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C笔记—一些用法

1、gets()函数总结

(1)gets() 从标准输入设备读取字符串,以回车结束读取,使用''结尾,回车符'n'被舍弃没有遗留在缓冲区。
(2)可以用来输入带空格的字符串。
(3)可以无限读取,不会判断上限,因此使用gets不安全,可能会造成溢出

2、四舍五入输出

float f = …..; int i = (int)(f + 0.5); 
i就是f四舍五入的结果

3、assert()断言函数,用于在调试过程中捕捉程序错误

assert() 会对表达式expression进行检测:

“断言”在语文中的意思是“断定”、“十分肯定地说”,在编程中是指对某种假设条件进行检测,如果条件成立就不进行任何操作,如果条件不成立就捕捉到这种错误,并打印出错误信息,终止程序执行。

  • 如果expression的结果为 0(条件不成立),那么断言失败,表明程序出错,assert() 会向标准输出设备(一般是显示器)打印一条错误信息,并调用 abort() 函数终止程序的执行。
  • 如果expression的结果为非 0(条件成立),那么断言成功,表明程序正确,assert() 不进行任何操作。

4、多组输入输出
...
一:while (scanf("%d",&n)!=EOF)
二:while (~scanf("%d",&n))
...
5、const用法

const 修饰变量
const 修饰指针

int main()
{
	const int n = 10;
	//n = 20;
	//const 修饰指针
	//const 放在*的左边
	//const修饰的指针指向的内容,表示指针指向的内容不能通过指针来改变
	//但是指针变量本身是可以改变的
	//
	//const 放在*的右边
	//const修饰的是指针变量本身,指针变量的内容不能被修改
	//但是指针指向的内容是可以通过指针来改变的

	int m = 100;

	int* const p = &n;
	//p = &m;
	*p = 20;

	printf("n=%dn", n);

	return 0;
}
6、strlen与sizeof

strlen是一个库函数,计算的是字符串的的长度,并且只能针对字符串,关注的是字符串中是否有'',计算的是''之前的字符个数

sizeof是一个操作数(运算符),sizeof是用来计算变量所占内存大小的,任何类型都是可以使用,只关注空间大小,不在乎内存中是否存在''

7、sizeof内部表达式注意事项

sizeof内部的表达式并不会去真实计算

如:short s = 20; sizeof(s=a+4)——>sizeof(short)

sizeof并不计算里面的a+4,而是计算s的数据类型,为2,因为short数据类型为2个字节大小

8、大小端字节序

大小端字节序:是指以字节为单位的数据的存储方式(该数据大小需大于1字节)

大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中;

小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地 址中。

9、整型提升

char short类型的数据在参与表达式计算时(+  -  *  /  % 等)会发生整形提升,因为整形数据在内存中是以补码的形式参与存储与计算,若定义的数据类型小于int型,在其计算时会把这个数据整形提升为int型去计算。

整型提升是按照变量的数据类型的符号位来提升的,无符号数整型提升是往高位补0

10、算数转换

int      long      long long      float      double

以上多种类型数据(>=int类型)参与表达式计算会发生算数转换,是往高字节类型转换 

11、无符号整数注意事项

无符号整数做循环变量时,若超出范围可能会造成死循环

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/648137.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号