py转c基础

本文从程序结构、数据类型、输入输出、内存管理和运算特性等方面对比了Python和C语言。Python以其简洁的语法和自动内存管理吸引初学者,但执行速度相对较慢。C语言则以编译型语言的高效和丰富的内置函数著称,但需要手动内存管理和更多的类型声明。此外,文章还介绍了C语言的基本数据类型、数组、字符串操作以及输入输出函数的使用。
摘要由CSDN通过智能技术生成

python和c语言

(小菜鸟上个学期学的是py这个学期学c语言,做个入门,自己的理解)

py和c的区别

  1. py是以缩进,冒号来控制逻辑,而C语言是通过大括号控制的
    eg:求n的阶乘
    (python版本)
re = 1
n = int(input())
for i in range(1 , n + 1):
	re *= i 
print(re)

(c语言版本)

#include <stdio.h>//头文件

int main()//主函数
{
    int re = 1 ,n;//声明变量
    scanf("%d",&n);//读入变量n
    for(int i = 1 ; i < n + 1 ; i ++) re *=i;//循环
    printf("%d",re);//输出结果
    return 0;//结束程序
}
  1. 速度
    python的代码相对于c语言的代码要短,同时python的速度要比c语言慢
    python为解释型
    c为编译型

  2. 内存管理
    python内有自动垃圾收集器进行内存管理
    c语言中则需要自己管理

  3. c语言中的内置函数没有python中多(小菜鸟的想法,是小菜鸟学艺不精)

  4. 想要使用新的变量的时候要先声明

6 . py中的单行注释为#
c语言中单行注释为//
多行为/* ……*/

  1. python中幂运算的符号为** 而c中要用函数pow,并且要引入头文件<math.h>

程序结构

基本结构

#include<stdio.h>//预处理器指令(头文件)

int main()//主函数
{
    //这里写代码  
    return 0;
}

<stdio.h>头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出
一个程序中只有一个主函数 即int main()
return 0;中止主函数,返回0

数据类型(常用)

整形(即python中的int)

符号名称范围
short短整型 (2字节)-2^15 ~ 2^15 -1
int整型 (4字节)-2^31 ~ 2^31 -1
long长整型 (4字节)-2^31 ~ 2^31 -1
long long长长整形(8字节)-2^63 ~ 2^63 -1

通常使用 int 和 long long(个人)

eg:

int a , b;
long long int c , d;

数组类似于python中的列表):
eg:

#include <stdio.h>

int main()
{
	int a[10]={0,1,2,3,4};//初始化
	for(int i = 0; i< 10 ; i ++) printf("%d\n",a[i]);
	return 0;
}

注意:

数组要多开10个(个人)
初始化后剩余的位值为0

浮点型(python中的float)

符号名称
float(4字节)单精度浮点数类型
double(8字节双精度浮点数类型
long double(8字节)长双精度浮点数类型

c程序在执行的时候要把十进制转化为二进制,小数时转化不尽(会导致结果不准)
通常使用double(个人)

eg:

float a ;
double b;

字符型(非python中的str)

和python中的区别

python中是字符串 即“abc” (一个或多个字符)
c中要分开存储即 ’a‘ ‘b’ ‘c’

char (1个字节) -128~127
如果要存字符串就要声明字符数组 即 char a[10];

eg:

char a;
char b[10];

注意:
'\0’是字符串的结束符号,不管在什么位置,读取到这个符号 就会终止读入。
同时如果想要读入”abc“ 一个三个长度的字符数组要开的比三个大(个人通常多开10个)即char a[13]

输入与输出

输入

scanf函数(python中input())

类型代码
intscanf("%d",&a);
longscanf("%ld",&a);
long long intscanf("%lld",&a);
charscanf("%c",&a);
字符串(字符数组)scanf("%s",a);
floatscanf("%f",&a);
doublescanf("%lf",&a);

输出

printf(python中print())

类型代码
intprintf("%d", a);
longprintf("%ld", a);
long long intprintf("%lld", a);
charprintf("%c", a);
floatprintf("%f", a);
doubleprintf("%lf", a);

常用语句

判断(基础)

c
if()
else if(条件)
else if(条件)
else if(条件)
else

eg:

#include <stdio.h>

int main()
{
    int a;
    scanf("%d",&a);
    if(a >=90) printf("优秀");
    else if(90 >a && a>=80) printf("良好");
	else if(80 > a && a>=60) printf("合格") ;
	else printf("不及格");
	return 0;    
}

循环

for循环

for(int i = 0 ; i < 10 ; i++)从0到9

while循环

int a = 0;
while(a<10) a++;//当a小于10时a加1

do……while……循环

(先做后判断)
eg:

int a= 0;
do a++ ; while(a<10);

运算符

符号意义
+加法
-减法
*乘法
/除法
%取余
&&与(同py中and)
||或(同py中的or)

注意:
整形除整形结果是整形 如果想要浮点型乘上1.0

#include <stdio.h>

int main()
{
	int a = 3;
	int b = 2;
	printf("%f" ,a/(b*1.0));
	return 0; 
}

数组

部分赋值的时候,没有赋值的位置上的值为0

一维数组

(python中的列表)
eg:

int a[10]= {0 , 1 , 2 , 3 ,4 }//可以直接赋值
int a[] = {0 , 1 , 2 , 3 , 4 }//编译器自动分配空间  
long long int a[10] = {0, 1 , 2 , 3}//不同类型的数组存储大小不同  
double a[10] = {0.5 ,1.5, 2.5, 3.5}
char a[10] = {'a' , 'b', 'c' ,'d'}

注意:
第一个位置的下表为0
数组大小必须大于0的整数
字符数组里面的字符用的是单引号(python中字符串单引号和双引号都可以)

二维数组

(数组里面的元素是数组)
eg:

int arr[3][4] = {{1,2,3},{4,5,6},{7,8,9}};
第0列第1列第2列
第0行12
第1行45
第2行78
第3行00

字符串的函数

  1. strcmp(str1, str2): 字符串比较函数,两个字符串从左到右依次相比,直到出现不相同的字符或遇到/0为止
  2. strcpy(str1, str2):字符串拷贝函数,讲str2的字符串拷贝到str1中,需要注意的是,如果目标数组str1不够大,而str2过长可能会出现溢出的情况
  3. strcat(str1, str2):字符串拼接函数,将str2的数组拼接到str1的后面,同时也要注意溢出的情况
  4. strlen(str):求str字符串的长度
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值