专业视频网站开发公司,网站建设私活,青岛网络公司哪家专业,大型网站制作需要什么设备C前奏 1.变量的定义2.键入和输出3.运算符4.sizeof()函数5.判断6.goto语句7.总结 这个专题#xff0c;我会用简单的语言介绍C的语法#xff0c;并会适当的对比实现相同或相似功能的C与python代码写法上的不同。 1.变量的定义
对于python来说#xff0c;我们可以跳过定义直接… C前奏 1.变量的定义2.键入和输出3.运算符4.sizeof()函数5.判断6.goto语句7.总结 这个专题我会用简单的语言介绍C的语法并会适当的对比实现相同或相似功能的C与python代码写法上的不同。 1.变量的定义
对于python来说我们可以跳过定义直接使用“”为变量名赋值。但是C有严格的声明、定义调用流程因此在赋值之前必须对需要用到的变量进行声明和定义
# includestdio.h // 引用头文件
# includeiostream
using std::string; // 可以使用字符串类
using namespace std; // 指定命名空间以便
// 在代码中使用该命名空间中定义的所有标识符
// 类似于python中的from XXX import *
int main() // 定义主函数
{int a; // 定义一个变量a用于存储int类型数据
}在C中主函数与其他函数一样需要有函数类型、函数参数但在python中我们不需要通过主函数来告诉编译器执行哪些内容。本文之后的C代码将不再写全引用和主函数如果大家想要运行记得自行补全。 C语言在声明变量的时候就可以为变量赋值方式如下
int a10;
int b10,c10;但需要注意的是赋值之前必须要保证变量是有定义的这就意味着一下写法是不能正常执行的
int abc10; // 赋值语句从右向左进行但b和c没有定义2.键入和输出
C中虽然也可以使用scanf和printf作为输入和输出但是使用系统函数cin和cout完成这一任务更为方便。 首先介绍输出输出的语法为cout加两个小于号再加输出内容我们可以在一行内多次数用两个小于号输出不同内容
int a,b,c; // int是一个整数类会自动给其实例赋初值这点与Python相似。// 不了解类和面对对象的小伙伴先不要着急后面会讲到~
couta;
coutbc;运行上面的代码可以发现终端输出a的值后并没有换行或空格而是紧接着输出了b和c的值。如果想要换行除了使用cout“\n”;语句之外还可以在接输输出时加入endl
int a,b,c;
coutaendl;
coutbcendl;介绍过cout之后我们再来看看cin。与cout类似输入的语法为cin加两个大于号再加用于接收的内存空间。同理我们也可以用多组双大于号来一次性指定多个变量进行接收
int a,b,c;
cout输入整数;
cinabc;
/*
或可写成
cina;
cinb;
cinc;
*/
cout\nabcendl;通过以上代码我们可以键入三个数并由变量a、b、c接收。输入过程以空格或回车作为结束标志。在计算机读到回车后会判断输入是否结束。下面我们运行代码分析计算机具体怎样实现 以上分别是四次键入的效果。第一次我们输入一个数字后按一次回车在输入三次后计算机会自动结束输入执行cout输出。第二次我们以空格作为分隔在输入五个数字后按回车可以看到计算机会自动将对应数字赋值给三个变量当变量全被赋值后会自动结束赋值多输入的数字不会保存。第三次输入时1与2之间有两个空格但计算机在读到第一个回车后并没有终止输入说明多个空格和一个空格作为输入的分隔时拥有相同的效果。第四次输入时每个数字后面都跟着一个空格和一个回车计算机依然在读到三个数后才结束输入过程。 在Python中键入使用的是input输出则使用print。由于Python使用空间之前不需要声明类型所以默认的输入类型为字符串并且空格不能被作为分割符记录而是会被当做是输入的字符只有遇到会车时输入才会停止
valinput(输入内容)
print(val,type(val))
# 输出为输入内容1 2 3 4
# 1 2 3 4 class str如果我们希望输入内容为其他类型可以在接收后进行类型转换。
3.运算符
在之前python的学习中我们已经学到过python中承认的逻辑运算符号典型的有andor和not。C显然是不支持这些英文单词作为逻辑运算符的其表达与、或、非的逻辑关系分别用符号 、||、 需要注意的是这种表达python是接受的
int a10,b8;
cout(ab) (a||b) (!a)endl;
// 输出为1 1 0在C中布尔类型的值依然只有0和1其中0代表false1则代表true。如果用普通数字用来描述false和true那么0表示false非0均为true。 如果我们只写了一个或者|表示的则是数字二进制表示的按位与和按位或python也同样适用。此外常见的安慰操作符还有按位亦或“^”
int a10,b8;
// 101010 81000
cout(ab)endl; // 每一个对应位值均为1时记录1否贼记录0。1000
cout(a|b)endl; // 每一个对应位值均为0时记录0否贼记录1。1010
cout(a^b)endl; // 每一个对应位值不同时记录1相同则记录0。0010
// 输出为8
// 10
// 2移位操作符在python和C中是相同的这里就不过多展开了。
4.sizeof()函数
C没有像python中那样方便的列表、字典等类型可以轻易地添加新的元素。因此如果想要为数组等型增加长度时就首先需要扩充数组的长度具体扩大多少就需要看你想要添加多少元素以及每个元素所占的空间。sizeof函数就可以完成计算每种类型所占空间大小单位字节的计算
int a;
std::string b;
float c;
double d;
coutsizeof(a) sizeof(b) sizeof(c) sizeof(d)endl;
// 输出为4 32 4 8python中有计算可迭代类型长度的函数len但是在C中我们想要计算数组的长度就只能通过数组所占空间的总大小除以数组每个元素所占空间的大小间接得出
char a[10];
coutsizeof(a)/sizeof(a[0]);
// 输出为105.判断
提起判断大家都熟悉的一定是if-else语句。在python中该语句写成
if 条件A:
elif 条件B:
else:而在C中写法则略有不同
if(条件A){}
else if(条件B){}
else{}我们只需要注意一下写法上的不同就可以了。但是C还支持一种python中没有的判断句switch
switch(表达式)
{
case :
case :
.
.
.
default:
}switch语句的括号里根着的表达式可以有非单纯0或1的多重结果也可以不是数字。case后面要跟表达式的可能结果default后面不需要跟内容。Switch语句中每个冒号后面不用额外添加花括号但是每个case和default在结束前必须要加一个break否则如果中间的case满足了表达式的条件这个case后面的语句将逐条被执行自动忽略case直到遇到break。原则上default要放在最后面如果case成立default将自动不会执行所以即使case没有加breakdefault下的语句也不会在某条case成立时执行。下面给大家展示一个例子 这段代码给到大家
char a;
cout请输入字母;
cina;
switch (a)
{
case a:coutaendl;// break;
case b:coutbendl;// break;
case c:coutcendl;break;
case d:coutdendl;// break;
default:coutnot fondendl;// break;
}有兴趣的小伙伴可以自行实验。
6.goto语句
goto也是C的特有其可以强制程序跳转到另一位置执行类似于循环。但是由于goto的规范使用难度较高滥用goto又会导致代码可读性和可维护性变差所以python禁用了这个语句。因为该语句并不推荐使用所以我仅做简单的介绍
int a0,i0;
lable:
a;
couta ;
if(i10)
{i;goto lable; // 强行跳转到lable标记处}这样我们就利用强制跳转实现了一个执行十次的循环。
7.总结
本节我们简单介绍了C中一些基本的语句、逻辑判断和运算并与Python进行了一些对比。相信看过我Python专栏的小伙伴可以很好的理解。其实不同的语言只是在语法上有较大的差异在算法实现的逻辑上则没有太大不同。下一节我会继续分享C的循环和函数。