C语言语法
每一个c文件,有且仅有一个main函数,这个函数禁止调用。程序执行的时候,会自动调用。
C语言的包含
#include的用法,有两种,写法如下:
#include<stdio.h>
#include”my_stdio.h”
以上两种写法,引用路径不一样,区别如下:
使用<>:编译器会到系统路径下查找头文件,一般是适合引用系统文件
使用“”:编译器首先会回到当前目录下查找头文件,如果没找到,再去系统路径下查找,一般适合引用自定义的文件
注释
多行注释
/* 多行注释 ... */
文档注释
/ * * * * * * */
变量以及常用的数据类型
数据类型是用来修饰变量,决定了分配内存的大小和存储方式
变量是一块用来存储数据的内存空间
定义变量
关于变量的命名:
1.不能是关键字
2.不能以数字开头
3.可以包含英文字母(包含大小写)、数字、__、$
4.不建议使用中文作为变量
5.如果涉及到两个或者两个以上单磁,使用_分割,例:user_nam
先声明,后定义
语法:
数据类型 变量名
变量名 = 值; 被称作赋值符号
声明并直接赋值
语法:
数据类型 变量名 = 值;
常用的数据类型
整形:int(基本整形)
%d:格式化符号,表示十进制(0-9)
%x:格式化符号,表示十六进制(0~9,A-F)
int占4个字节,1字节=8位(bit)
小数/浮点型:double(双精度)
%lf:格式化符号
double占8个字节
字符:char
%c:格式化符号
说明:‘a’:是字符,‘李’:不是字符
说明:在c语言中,1字节=1字符
布尔:
第一种:不导入相关库,使用int来表示,0表示假,非0表示真
第二种:导入相关的库,使用bool来表示,false-假,true-真
数组:
语法:数据类型 数组名[数组大小]
举例:int nums[3]
字符串:
说明:c语言中没有字符串类型的变量,c语言中有字符串类型的常量
使用:表示法1:char str1[20]=“hello”;使用字符数组实现字符串,格式化符号%s
表示法2:char*str2=“hello”;使用指针实现字符串,格式化符号%s
注意:如果变量的类型是int、char、double,scanf中需要通过&取地址,如果指针、数组,直接访问
vim中:
快捷键:ctrl+s表示锁定屏幕
快捷键:ctrl+q表示解除锁定
自定义函数
1.声明函数
语法:返回值类型 函数名(参数列表);
举例:
2.定义函数
语法:返回值类型 函数名(参数列表){..}
举例:
3.调用函数
语法:数据类型 变量名= 函数名(..);
举例:
如果被调函数是定义在主调函数的上面,此时是可以省略被调函数的声明;反之一定要加上函数的声明,否则编译不通过
举例:
#include<stdio.h> //声明函数 int add(int,int); //定义函数 int add(int a,int b) { return a+b; } //主调函数 int main() { //被调函数 int res = add(4,5); }
流程控制
三大结构
顺序结构:程序按照默认的顺序进行执行
分支结构/条件结构:根据我们给定的条件(条件满足),进行选择性执行
循环结构/重复结构:根据我们给定的条件(条件满足)
,进行循环执行
分支结构
if..(单分支)
语法:
if(条件表达式) { //语句块 }
说明:
①条件表达式的返回值是boolean,也就是0和非0,或者false和true
②如果条件表达式成立(true或者非0),就执行语句块,否则就不执行
案例:
void if_test() { int a,b,c; printf("请随机输入三个大小不一的数字 "); scanf("%d %d %d",&a,&b,&c); int max = a; if(max<b) { max = b; } if(max<c) { max = c; } printf("三个数字中最大的数字是:%d ",max); } int main(int argc,char *argv[]) { if_test(); return 0; }
if..else..(双分支)
语法:
if(条件表达式) { //语句块1 } else { //语句块2 }
说明:
①条件表达式的返回值是boolean,也就是0和非0,或者false和true
②如果条件表达式成立,就执行语句块1;否则就执行语句块2。不管成立与否,都会进入到这个分支结构
案例:
void if_test1() { int a; printf("请随机输入一个数字 "); scanf("%d",&a); if(a == 0) { printf("%d既不是奇数也不是偶数 ",a); } else { if(a % 2 == 0) { printf("%d是偶数 ",a); } else { printf("%d是奇数 ",a); } } } int main(int argc,char *argv[]) { if_test1(); return 0; }
if..else if….else..(多分支)
语法:
if(表达式1) { //语句块1 } else if(表达式2) { //语句块2 } .. else if(表达式n) { //语句块n } else { //语句块 }
①所有的表达式,返回值是boolean类型
②一旦我们判断的条件超过了两种结果,可以使用这种结构
③多分支语句中,程序的执行是依次从上往下进行判断,如果上面条件成立,就不执行后续的;不成立继续向下走,直到遇到最后一个分支为止
案例:
void if_test2() { int score; scanf("%d",&score); if(score>=90) { printf("优秀 "); } else if(score>=80) { printf("良好 "); } else if(score>=70) { printf("普通 "); } else if(score>=60) { printf("及格 "); } else { printf("不及格 "); } } int main(int argc,char *argv[]) { if_test2(); return 0; }
switch..case..(多分支)
语法:
switch(变量表达式) { case int | char | emun: //语句块 break;//这里的break如果省略,就会导致程序无法停止,会进入到下一个case,直到遇到下一个break或者switch执行结束才会停止 .. default: //语句块default break;//可以不写 }
说明:
①变量表达式的返回类型必须是int/char/emun
②case后面的值需要和变量表达式完全匹配,才会进入到该case,去执行对应的语句块
③和多分支一样,代码的执行是由上往下,这里的default和多分支中的else类似
案例:
void switch_test() { int week; printf("请输入一个数字(1~5) "); scanf("%d",&week); switch(week) { case 1: printf("Linux基础 "); break; case 2: printf("C语言基础 "); break; case 3: printf("文件IO "); break; case 4: printf("图形显示 "); break; case 5: printf("图像显示 "); break; default: printf("请输入正确的星期 "); } } int main(int argc,char *argv[]) { switch_test();c return 0; }到此这篇pch头文件(pch头文件只能在文件范围内使用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/53956.html