1.转义符
在一些输出特殊符号的字符的时候,编译器往往会把你想要输出的字符识别成特殊字符,比如说:三字字母“??)”在老版本的vs编译器中会错误的把??)识别成]这个字符,这时候想要正常输出就需要用到转移字符‘\’这个。类似的还有想要输出%d和也可以\%d来转移成普通的字符。如果要打印"这个符号就也需要转义字符。
补充:\t为水平制表符我们在打印盘符的时候例如: printf("c:\test\test.c")系统会自动的识别其中的\t为水平制表符也就是tab,随意如果想要打印出来正确的存储位置等类似的信息的时候,就可以在\t前面再加一个\就可以了。如下: printf("c:\\text\\text.c")
小点:使用printf的细节:
printf("%d",100);//打印整形
printf("%c",'a');//打印字符
printf("%s","abc")//打印字符串
在转移字符中有个有趣的转义字符就是:\a,我们在对这个转义字符;进行输出的时候电脑会响一下有几次就响几次。
剩下的转义字符还有:
IF选择语句(重点):
演示代码:
#include<stdio.h>
#include<s>
int main(){
int input=0;
printf("选择你的班级");
printf("如果你想进女生班级扣1,\n男生班级扣2");
scanf("%d",&input);//取地址
if(input==1)
printf("您进入了女生班级");
else(input==0)
printf("您进入了男生班级");
else(input!=0&&input!=1)
printf("请您重新选择");
return 0;
}
在该段代码中共有三个选择条件,分别为是否扣1以及1以外的选项。为了可读取性可以在选择语句后面加上{}。
循环语句
演示代码:
1.for循环
#include<stdio.h>
int main(){
for(int i=o,i<=16,i++){
print("我要长大!!!");
}
print("我终于长大了");
return 0;
}
在该段代演示的是常用的循环语句之for循环,在for右边的()内部填写确定循环次数的语句,比如例子中,定义了一个i其值是0,当i小于或者等于16的时候就执行大括号中的语句,并且i递增加1,也就是说共执行了从0数到16也就是数了并执行了17次。
2.while循环
演示代码:
#include<stdio.h>
int main(){
int a=0;
while(a<30000){
printf("写代码%d\n",a);
a++;
}
if(a==30000){
printf("你是个合格的程序员了")
}
return 0;
}
同上for循环也是先确定循环条件,并填写到while()内部,随后在{}内部写入循环体,也就是要去做的事情。
函数:
演示代码:
普通模式:
#include<stdio.h>
int main(){
int num1=0;
int num2=0;
scanf("%d%d",&num1,&num2);//取地址值
int sum=num1+num2;
printf("%d\n",sum);
return 0;
}
用函数解决:
#include<stdio.h>
Add(int x,int y)
{
int z=0;
z=x+y;
return z;
}
int main(){
int num1=0;
int num2=0;
scanf("%d%d",&num1,&num2);
int sum=Add(num1,num2);
}
函数的本质与java中的方法类似,方法是抽离了常用的操作,方便多次使用的时候不用重复书写多余的代码,函数也是如此。在main(){}中定义一个接受函数返回值的变量并且传递对应的值给函数。
数组:
一组相同类型的元素的集合创建格式
int(数组元素类型) 数组名 [数组长度]={元素逗号隔开};
小点:当你创建数组时,但是你填充的元素少于你规定的元素,剩下的元素c语言会自动补齐的默认为0,当我们调用数组其中的某个元素的时候,需要看看该元素的下标。数组名[]里面加对应下标。
操作符:
操作符就是对元素进行加减乘除等等操作的符号
小点:c语言进行除法操作的时候,是对结果进行整除,也就是去掉小数后面的。好比9/2得到的结果是4,如果要更精确一点可以尝试9/2.0得到的结果是4.5
常见关键字:
关键字重点:typedef(类型定义,类型重定义)
代码演示:
typedef unsigned int u_iny
int main(){
u_iny=100;//typedef可以给unsigned int换个好码的名字但是效果一样
}
static-静态的,有三个用法
1.修饰局部变量
改变了局部变量的生命周期(本质上是改变了变量的存储类型)
2.修饰全局变量
用static修饰全局变量,使得这个全局变量只能在自己所在的源文件(.c)内部可以使用,但是源文件以外的就不能使用。全局变量可以被其他源文件内部使用是因为外部连接属性,但是被static修饰后就变成了内部连接属性。
3.修饰函数
声明全局变量:
我们想使用别的地方定义的全局变量的时候需要对变量进行声明 具体格式为: extern 变量类型 变量名
#define定义常量和宏:
define就是一个预处理指令两个用途
1.define 定义符号
前面有提到
#define MAX 1000;
int main(){
printf("%d\n",MAX);
}
2.define定义宏(重点)
#define ADD(X,Y) X+Y
int main(){
printf("%d\n",ADD(2,3))
return 0;
}
//结果是5
这里是替换,也就是直接将mian函数里面的ADD(2,3)换成2+3,如果我们运算4*ADD(2,3)而得到的结果是4*2+3也就是11。
优化上面函数:
#define ADD(X,Y) ((X)+(Y))
int main(){
printf("%d\n",4*ADD(2,3));
return 0;
}
//此时的结果是11
指针:
指针就是获取内存地址的一个变量名称,其使用规范是:
我们定义一个变量:int a=100;
此时定义一个指针:int(数据类型)*ps=&a;
其中&在前面有提到过是取地址符号。
在这里顺带提一下结构体,c语言的结构体与Java里面的类是相似的,按照时间线来说,是java继承了c语言的结构体创建的类,下面是代码演示:
#include<stdio.h>
struct Book
{
char name[20];
float price;
char id[30];
}
int main(){
struct Book s={"云端有个小卖部",22,23.2};
printf("%s,%lf,%lf",s.name,s.price,s.id);
struct Book*pt=&s;
printf("%s,%d,%lf,",(*pt).name,(*pt).price,(*pt).id);
printf("%s,%d,%lf",pt->name,pt->price,pt->id);//pt->就代表着*pt
return 0;
}
在上述代码中printf中%d,%f,%lf可能暂时存在错误,后续会更正
以上便是初学C语言的部分,学完之后能初步的看懂C语言的案例了。后续的学习会重点深入。
再接再励!!!!