前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。
👉点击跳转到教程
前言:
初识C语言
//#include 相当于java的import,stdio全称:standard input$output 标准的输入输出 .h头文件的后缀,包含一些函数
#include <stdio.h>
//导入的标准的C语言函数库
#include <stdlib.h>
main() //相当于Java的public static void main(String[] args)
{//函数的开始 printf("hello,world! \n"); //printf(内容)输出函数,相当于Java的System.out.println("hello,world!"); \n是回车换行 system("calc"); //调起计算器system("mspaint"); //调起画板system("services.msc");//调起服务 system("java Hello"); //调用字节码 system("pause"); //让docs命令行执行pause命令,作用是控制台停留。
}//函数的结束
一、C语言基本数据类型详解
#include<stdio.h>
#include<stdlib.h>/**C语言基本类型char,int,float,double,long,short,signed,unsigned,void计算机类型的长度:sizeof("类型") 返回int类型的长度占位符:%dprintf("内容"); Java数据类型和C语言基本数据类型的区别:1.Java中char类型的长度为2个字节,C语言中的长度为1个字节 2.Java中long类型的长度为8个字节,C语言中的长度为4个字节C99标准:long类型的规定,不小于整形。3.C语言中没有byte4.C语言中没有boolean类型,0表示false,非0表示true 5.signed:有符号:-128~127 =-2^7~2^7-1 6.unsiged:无符号:0~255 =0~2^8-17.void:无类型,代表任意类型
**/
main()
{printf("int类型的长度为:%d\n",sizeof(int));printf("char类型的长度为:%d\n",sizeof(char));printf("float类型的长度为:%d\n",sizeof(float));printf("double类型的长度为:%d\n",sizeof(double));printf("long类型的长度为:%d\n",sizeof(long));printf("short类型的长度为:%d\n",sizeof(short));printf("signed类型的长度为:%d\n",sizeof(signed));printf("unsigned类型的长度为:%d\n",sizeof(unsigned));printf("void类型的长度为:%d\n",sizeof(void));if(-1){printf("true\n");} else{printf("false\n");}system("pause");
}
输出到控制台内容如下:
二、C语言输出函数详解
#include<stdio.h>
#include<stdlib.h>
/**
输出函数
printf("你要输出的内容");
%d - int
%ld - long int
%c - char
%f - float
%u - 无符号数
%hd - 短整型
%lf - double
%x - 十六进制输出int,或者long int 或者short int
%o - 八进制输出
%s - 字符串 printf("你要输出的内容对应的占位符");
在C语言中,默认保留小数点后6位
要想保留对应的位数,就需要在百分号后边加上,.数字 十进制:12345678
二进制 1011110001100001010011100110000101001110不同的类型,要用不同的占位符去输出,否则精度丢失
*/
main(){char c = 'A';int i=12345678;long l=123456789;float f =3.1415;double d = 3.1415926535;printf("c==%c\n",c); printf("i==%d\n",i); printf("l==%ld\n",l); printf("f==%.3f\n",f); printf("d==%.9lf\n",d); printf("i==%hd\n",i);//C语言的数组的括号不能写在左边 char cArray[]={'A','B'}; printf("cArray的内存地址==%#x\n",&cArray);char* text="I love you";printf("cArray的内容==%s\n",text);system("pause");
}
输出到控制台内容如下:
三、C语言输入函数详解
1.输入函数.c文件
#include<stdio.h>
#include<stdlib.h>
/**
输入函数
scanf("占位符",内存地址)%d - int
%ld - long int
%c - char
%f - float
%u - 无符号数
%hd - 短整数
%lf - double
%x - 十六进制输出int 或者long int 或者short int
%o - 八进制输出
%s - 字符串 System.in();
*/
main(){int i;printf("请输入的数字:\n");scanf("%d",&i);printf("您输入的数字是:%d\n",i);//输入 在C语言中没有String类型,但是可以用char数组来表示 char cArray[]={'H','E','L','L','O'}; int j;for(j=0;j<5;j++){printf("cArray[%d]==%c\n",j,cArray[j]);} printf("cArray== %s\n",cArray);system("pause");
}
输出到控制台内容如下:
2.输入函数2.c文件
#include<stdio.h>
#include<stdlib.h>
/**
输入函数
scanf("占位符",内存地址)%d - int
%ld - long int
%c - char
%f - float
%u - 无符号数
%hd - 短整数
%lf - double
%x - 十六进制输出int 或者long int 或者short int
%o - 八进制输出
%s - 字符串 System.in();
*/
main(){char cArray[5]; printf("请输入HELLO: \n");scanf("%s",&cArray);int j;for(j=0;j<5;j++){printf("cArray[%d]==%c\n",j,cArray[j]);} printf("cArray== %s\n",cArray);system("pause");
}
输出到控制台内容如下:
3.输入函数3.c文件
#include<stdio.h>
#include<stdlib.h>
/**
输入函数
scanf("占位符",内存地址)%d - int
%ld - long int
%c - char
%f - float
%u - 无符号数
%hd - 短整数
%lf - double
%x - 十六进制输出int 或者long int 或者short int
%o - 八进制输出
%s - 字符串 System.in();
*/
main(){char cArray[]={'a','b','c','d','e','\0','a','b'}; //\0代表结束//数组是一块连续的内存空间 printf("cArray==%s\n",cArray);//char类型的指针 char* text="I love you!!";printf("text==%s\n",text); system("pause");
}
输出到控制台内容如下:
四、C语言指针的初步认识
#include<stdio.h>
#include<stdlib.h>/**指针就是内存地址内存地址就是指针
*/
main(){//定义一个int类型的变量i,并且赋值为10 int i=10;//定义一个int类型的一级指针变量p int* p;//把i对应的地址赋值给p变量p = &i;//指针取值*p:把p变量对应的地址的值取出来printf("*p==%d\n",*p); system("pause");
}
输出到控制台内容如下:
五、C语言指针的深入理解
#include<stdio.h>
#include<stdlib.h>/**指针就是内存地址内存地址就是指针
*/
main(){int i = 100;int* p = &i;//第一个实验:如果修改i值,P值有变化吗?
// printf("修改i值前,p的值是:%#x\n",p); //修改i值前,p的值是:0x62fe14
// i=200;
// printf("修改i值后,p的值是:%#x\n",p);//修改i值后,p的值是:0x62fe14//第二个实验:如果修改p值,i值有变化吗?
// printf("修改i值前,i的值是:%d\n",i); //修改i值前,i的值是:100
// int j = 200;
// p=&j;
// printf("修改i值后,i的值是:%d\n",i); //修改i值后,i的值是:100 //第三个实验:如果修改i值,*P值有变化吗?
// printf("修改i值前,*p的值是:%d\n",*p); //修改i值前,*p的值是:100
// i=200;
// printf("修改i值后,*p的值是:%d\n",*p); //修改i值后,*p的值是:200//第四个实验:如果修改p值,i值有变化吗?printf("修改*p值前,i的值是:%d\n",i); //修改*p值前,i的值是:100*p=200;printf("修改*p值后,i的值是:%d\n",i);//修改*p值后,i的值是:200system("pause");
}
六、C语言中互换两个数字
#include<stdio.h>
#include<stdlib.h>/**互换两个数
*/
void switch1(int a,int b){ //传值无法改变值 int temp = a;a = b;b = temp;printf("sitch中 a地址==%#x\n",&a); printf("sitch中 b地址==%#x\n",&b);
}void switch2(int* a,int* b){ //传地址,可以改变值 int temp = *a;*a = *b;*b = temp;printf("sitch2中 a地址==%#x\n",a); printf("sitch2中 b地址==%#x\n",b);
}main(){int a = 100;int b = 200;printf("main中 a地址==%#x\n",&a); printf("main中 b地址==%#x\n",&b);printf("a==%d\n",a);printf("b==%d\n",b);switch1(a,b);
// switch2(&a,&b);printf("a==%d\n",a);printf("b==%d\n",b);system("pause");
}
执行switch1()函数控制台输出的结果
执行switch2()函数控制台输出的结果
七、C语言中函数返回多个值
/**返回多个值
*/ void close(int* a,int* b){*a=0;*b=0;
}
main(){//一键关闭GPS和wifi//1代表的是开,0代表的是关闭 int a = 1;int b = 1;close(&a,&b);printf("a==%d\n",a);printf("b==%d\n",b); system("pause");
}
运行结果如下:
注意:
通过被调函数修改主调函数普通变量的值
1、实参必须是普通变量的地址
2、形参必须是指针变量
3、被调函数中通过修改 *形参名的方式修改主调函数相关变量的值。