c语言学习笔记
-
函数调试时,
下一步(进入下一行)与单步进入(进入函数内部)的区别 -
函数定义放在主函数的位置
函数定义放在主函数前,因为编译器是逐上而下进行编译,它需要知道参数类型,个数,以及返回类型。来进行检查
函数定义放在主函数后,但前面需要有函数声明来告诉编译器去哪找函数体(参数类型,个数,以及返回类型)
字符串函数
- 字符串长度
//strlen(字符串)返回字符串的字数
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "hello world";
printf("%d\n", strlen(str));//输出 11(10个字符+一个空格)
printf("%d\n", sizeof(str));//输出 12 (返回占据的空间)
return 0;
}
- 字符串比较
#include <stdio.h>
#include <string.h>
int main()
{
char str[5] = "abc";
char str1[5] = "abc";
char str2[5] = "bbc";
char str3[5] = "zbc";
printf("%d\n", strcmp(str, str1));//输出 0(代表两个字符串相等)
printf("%d\n", strcmp(str, str2));//输出 -1(代表两字符不相等,且后一字符串比前面的大)
printf("%d\n", strcmp(str3, str));//输出 1
return 0;
}
strcmp(s1,s2),前一字符串与后面的比较,结果有0,1,-1!
- 字符串复制
#include <stdio.h>
#include <string.h>
int main()
{
char str[20] = "abc";
char str1[20] = "Hello World!";
printf("%s\n", strcpy(str, str1));//输出 Hello World!(后一字符串复制到前一字符串中
return 0;
}
- 字符串链接
#include <stdio.h>
#include <string.h>
int main()
{
char str[20] = "Hello ";
char str1[20] = "World!";
printf("%s\n", strcat(str, str1));//输出 Hello World!(后一字符串复制并接到到前一字符串后
return 0;
}
c语言传值不匹配问题
-
函数传值自动转换
-
格式符传值自动转换
#include <stdio.h>
void pri(int i);
int main()
{
pri(2.4);
int x = 2;
printf("%d,%d\n",sizeof(int), sizeof(float));//都是四个字节
printf("%f\n",x);//输出 0,格式符传值自动转换,原因在于截断
return 0;
}
void pri(int i)
{
printf("%f\n",i);
printf("%d\n",i);//函数传值自动转换2.4-->2
}
为此又学习啦:不同字符类型赋值时自动转换的扩充与截断,数字在电脑中的存储形式:二进制补码
扩充:位少-->位多
- 当数无符号:在多出来的二进制位填充0
- 当数有符号:在多出来的二进制位填充1,原因是负数的二进制补码
截断:位多-->位少
将对应的多余的高位舍去,将对应位的二进制数填充上
二进制补码:数字在电脑中都是以二进制补码的形式存放
- 正数:十进制<===>二进制
- 负数:十进制<===>二进制,
十进制--->二进制
1、获得对应整数的二进制形式 2、二进制形式加一 3、按位取反即得负数的二进制补码
反过来二进制-->十进制
1、按位取反 2、二进制形式减一 3、得正数的二进制形式,最后添负号
Dev C++中的整型与浮点型的字符转换
| 属性|字节数|示例|二进制形式(32bit)|
| :-- |:--: |:-- |:-- |
| 整型 |4 |2 |00000000 00000000 00000000 000000010|
| 浮点型|4 |2.0 |0(符号) 00000000(指数)00000000000000000000010|
所以当int x=2;float y = x;进行之后
y的二进制为0 00000000 0000000000000000000000,所以输出y自然为0
名词解释
本地变量:函数内部的变量就是本地变量,分为main函数和自定义函数。
生存周期:只在自身的{}之内生存。
作用域:只在自身的{}之内起作用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律