【C语言】一些用法

1、gets()函数总结

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

2、四舍五入输出

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

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

使用assert()函数需要引用头文件:#include <assert.h>

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=%d\n", n);

	return 0;
}

6、strlen与sizeof

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

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

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、无符号整数注意事项

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

12、数组名是首元素的地址,但有两个例外

1、sizeof(数组名),这里的数组名是表示整个数组的,sizeof(数组名)计算的是整个数组的大小,单位是字节

2、&数组名,这里的数组名不是首元素的地址,数组名表示整个数组,所以取出的是整个数组的地址

13、Visual Studio 2019快速更改所有变量名

1.用鼠标选中其中一个想要更改的变量名称(如count);

2.选中更改的变量名称(如count),按下键盘组合键Ctrl+C,再按Ctrl+F;

3.展开的替换框中填写想要更改的名称count-->sum,并单击第二个全替换AIT+ All按钮

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值