翁恺的视频见下方链接
翁恺C语言_哔哩哔哩_bilibili
python属于解释性语言,不需要编译,便可以直接运行代码。
语言没有解释/编译之分,python也可以使用编译器运行,C语言也可以通过解释器运行。
在很多场合C语言是唯一的选择,比如嵌入式系统等。
现代的编程语言在语法上的差异是很小的。
C语言从1969年的夏天开始。C语言是从B语言发展而来,B语言是从BCPL发展而来,BCP:
是从FORTRAN发展而来。
指针是C语言的灵魂所在。
1973年3月,第三版的Unix上出现了C语言的编译器。
1973年11月,第四版的Unix(System Four)发布,该版本完全用C语言编写。
#include
int main()
{
printf("Hello World!\n");
return 0;
}
四则运算 | C符号 | 意义 |
+ | + | 加 |
- | - | 减 |
x | * | 乘 |
÷ | / | 除 |
% | 取余 | |
() | () | 括号 |
取余指的是舍弃结果部分,取余数。
#include
int main()
{
int i;
int j;
j = i + 10;
printf("%d\n",j);
return 0;
}
if,else if形式是if,else级联的产物,只是省略了 else 和 if之间的方括号。
#include
int main()
{
int a = 10;
if (a<20)
{
printf("%d",a);
}
else
{
printf("No");
}
if (a<20) //不带方括号时,运行if最近的一行
printf("%d",a);
else
printf("No");
return 0 ;
}
条件:
#include
int main()
{
int type = 0 ;
switch (type) //参数需为int型
{
case 1:
printf("now is 1");
break;//跳出结构
case 2:
printf("now is 2");
break;
case 3:
printf("now is 3");
break;
default:
printf("now is null");
break;
}
return 0;
}
判断输入数字的位数。先判断条件成立与否,再进入循环。
#include
int main()
{
int num = 0;
int x;
scanf("%d",&x);
//若是去掉该部分,则输入0时,位数判断也为0.
num++;
x /= 10;
while (x>0)
{
num++;
x /= 10;
}
printf("%d",num);
return 0;
}
先进入循环,再判断条件成立与否。
#include
int main()
{
int num = 0;
int x;
scanf("%d",&x);
do //这里不需要在前面先num++,会先执行循环体,再去判断
{
num++;
x /= 10;
}while (x>0);
printf("%d",num);
return 0;
}
#include
int main()
{
int n,fact=1;
// int i = 1;
printf("请输入阶乘数:");
scanf("%d",&n);
for (int i=1;i<=n;i++) //C99的写法
{
if (i==9)
{
continue; //跳出本次循环,下面的循环体语句不执行了
}
if (i==10)
{
break; //跳出循环
}
fact *= i ;
}
printf("%d",fact);
return 0;
}
break会跳出循环,而continue则是跳出此处循环体,进入下一次循环。
利用goto跳出多层循环嵌套,直接进入out所指向的内容。但会破坏代码的可读性。
通过sizeof函数判断字节数。
printf("char = %d\n",sizeof(char));
整形在内存中为二进制补码,而浮点值是编码格式。
类型 | 字节 | 比特(bit) |
char | 1 | 8 |
short | 2 | 16 |
int | 4(取决于编译器、CPU) | 32 |
long | 4(取决于编译器、CPU) | 32 |
long long | 8 | 64 |
float | 4 | 32 |
double | 8 | 64 |
long double | 16 | 128 |
#include
int main()
{
printf("12+34=%d",12+34); //%d表示整形,并填入逗号后的数据
return 0;
}
#include
int main()
{
int price = 0;
printf("请输入金额(元):");
scanf("%d",&price); //将输入的值,作为整形赋值给price变量
int change = 100 - price;
printf("找您%d元\n",change);
return 0;
}
#include
int main()
{
int a,b;
printf("请输入两个整数:");
scanf("%d,%d",&a,&b); //将输入的值,作为整形赋值给price变量
printf("%d+%d = %d\n",a,b,a+b);
return 0;
}
a=b=6,这里是6先赋值给b,再将b的值赋值给a。
复合赋值
计算机字长:计算机一次能处理数据的位数
int,即CPU与内存之间一次传输的数据位数。同样也代表CPU里一个字长的寄存器所代表的的位数。
int所表达的就是一个寄存器的大小。
计算机内部都是以二进制表达的。负数以bu'ma
假如1个数据是8位的,那么最高位实际上为符号位,他的取值范围是 [-2的7次方 ~ 2的7次方-1]
如果想要把这个数作为纯二进制来看的话,则在前面定义
当整数超出范围时,会越界