C语言中注释,导入头文件,主函数,输入和输出、变量、运算符的使用,以及一些相关介绍

1.注释的使用

  • // 单行注释
  • /* */多行注释(不能嵌套)

#include的使用

  • include 宏 导入头文件,称为文件包含预处理命令,编译时由预处理器执行 。如果系统已经提供某些功能的实现只需要使用include将这些功能所在的头文件导入进来就可以了。
  • <系统提供的类库> eg. stdio.h math.h stdlib.h string.h
  • "自己定义的头文件" eg. "calcullate.h"
    (注意导入时两种符号的区别)
#include <stdio.h>编译器首先从系统的类库里查找这个头文件 ,如果没有再到自己文件中查找,否则报错
#include "stdio.h"编译器首先从自己的文件里查找这个头文件 ,如果没有再到系统的类库里查找,否则报错

2.main函数的使用

  • main()函数 =代码块=完成特定程序 ,所有程序入口点都是main函数
    注意每个程序有且只有一个main函数)
  • int返回值 记录当前程序的运行状态
    0:正常结束 资源自由分配
    非零:1 异常结束 没收资源
  • int argc:参数个数 argument count
  • char* argv[]:(char*字符串) 每个参数组成的字符串数组
#include <stdio.h>
int main(int argc,char*argv[]){
    printf("%d",argc);
    printf("%s",argv[0]);
    return 0;
}
输出结果:1C:\Users\123456\Desktop\未命名1.exe 

拓展:

  • 在C中如果调用输入输出函数(printf和scanf)需要加上占位符%,起到格式占位的作用,意思是在该位置有输入或输出。
常用

%d表示输入或输出十进制有符号数
%ld长整型输出
%c用来输出一个字符
%s用来输出一个字符串
%f表示输入或输出浮点数,以小数形式输出实数,隐含输出六位小数
%.100f用来输出实数,保留小数点100位
%lf表示输入或输出双精度浮点数

不常用

%o以八进制数形式输出整数
%x以十六进制数形式输出整数,或输出字符串的地址
%e以指数形式输出实数
%g根据大小自动选f格式或e格式,且不输出无意义的零
%u以十进制数输出unsigned型数据(无符号数)。注意:%d与%u有无符号的数值范围,也就是极限的值,不然数值打印出来会有误

3.printf格式化输出

  • printf 输出语句,用来让终端 console口输出数据
#include <stdio.h>
int main(int argc,char*argv[]){
    printf("hello\n world\n");
    return 0;
}
输出结果:hello
         world

转义字符
  • 除了在键盘上可以直接输入表示字符外,C还提供一种使用特殊形式表示的字符常量,这些字符常量以反斜线“\”开头,改变了原来字符常量的含义,称为转义字符


4.scanf格式化输入

  • scanf 输入语句,用来向终端输入数据
  • 当用户在终端输入数据时,数据会被存放到缓冲流,scanf用于在缓冲流中找到数据将其放入到给定的位置
  • 放入到给定的位置就是保存输入的数据,保存数据需要用到变量,我们只需要把数据送到对应变量的地址,就存储好了该数据,就可以通过该变量使用该数据。所以使用&获得变量a的地址。
int a=4;
scanf("%d",&a);//&表示取地址
  • 此时输入数据必须按照“jack+数据”的格式才可以将数据送入到变量中。所以,scanf函数中""里面的内容用来控制输出格式
#include <stdio.h>
int main(){
    scanf("jack%d",&a);
    scanf("%d",a);
    return 0;
}

注意:不要在scanf里面随意写内容写的内容是用输入的格式

scanf("%d%d",a,b);//输入时:数据+空格+数据
scanf("%d\n",a);//输入时:数据+\n(此时\n并不表示换行)

5.基本数据类型->只能存一个值

①首先明确C标准并没有具体给出规定哪个基本类型应该是多少个字节数,而且这个也与编译器有关
②虽然16位、32位或者64位的机子各种类型并一样,但有几条规则(ANS/ISO制定):

  • short至少占用2个字节
  • int建议为一个机器字长,32位环境下为4字节,64位环境下为8字节
  • short的长度不能大于int,long的长度不能小于int

③基本数据类型参照表格


bool 布尔型,是、成立ture;不是、不成立false
string 字符串,"jack"

  • 基本数据类型不同所占内存空间不同
  • void无返回值,int有返回值
    注意:
    1.c语言printf输出float和double都可以用%f,double型数据还可以用%lf
    2.scanf当中若是对双精度的变量赋值是必须是%f后跟lf,而printf当中可以用%lf也可以用%lf
    3.printf()只会看到双精度数,printf的%f格式总是得到double,所以在printf()中使用%lf跟%f的输出显示效果相同
    4.对于变量来说,double类型比float类型的精度要高。double精度更高,是指它存储的小数位数更多,但是输出默认都是6位小数。如果你想输出更多小数,可以自己控制,比如%.10lf就输出10位小数

④控制输出格式:

  • %md:要求输出字段宽度为m,右对齐,不够左端补空格,大于m按实际输出,如%3d
#include <stdio.h> 
int main(){
    int count =0;
    count =3333;
    printf("count =%6d\n",count); 
return0;
}
输出结果:count =空格空格3333
  • %0md:要求输出字段宽度为m,右对齐,不够左端补0,大于m按实际输出,如%02d
#include <stdio.h> 
int main(){
    int count =0;
    count =3;
    printf("I have %02d dogs\n",count); 
return0;
}
输出结果:I have 03 dogs
  • %m.nd:要求输出字段宽度为m,右对齐,后面n个位置当做小数,没有的补0,最前面m-n个没有的补空格,如%3.2d
#include <stdio.h> 
int main(){
float score = 3.1415926;
printf("%2.2f\n",score); 
return0;
}
输出结果:3.14

测量数据所占字节数(一个字节占八位)

#include<stduio,h>
int main(){
printf("%d\n",sizeof(int)); //4
printf("%d\n"sizeof(long));//4
printf("%d\n",sizeof(float));//4
printf("%d\n",sizeof(double));//4
printf("%d\n",sizeof(short));//2
printf("%d\n",sizeof(char));//1
printf("%d\n",sizeof(bool));//1
    return 0;
}
输出结果:4
         4   
         4   
         4  
         2
         1
         1         

6.变量

  • 变量是存储数据的内存区域,变量名是所对应内存区域的标识符。标识符是用来表示程序中实体的名字。变量所标识的内存区域中的数据是可以改变的。以图书馆座位为例:座位相当于变量,座位号相当于变量名,而座位上的人相当于储存在变量的数据;变量的类型是上个板块讲到的基本数据类型(数据类型决定变量的储存大小)
  • 变量命名:
    1.必须以字母或下划线开头。而实际上编程最常用的是以字母开头,以下划线开头变量名是系统专用的,最终还是以英文字母开头

正确变量名:

int In_1=2;
int abc=3;

错误变量名:

int1Int_1=2;
int 2abc=3;

2.不可以包含空格、标点符号和类型说明符(%、&、!、#、@、$)

错误变量名:

int name age=1;
int age%=2;

3.字母是区分大小写的

int n=2;
int N=2;
//变量N和变量n是两个不同的变量

4.有效长度为225个字符
5.不可以是关键字

C语言中的关键字有:auto、 double、 int、 struct、 break 、else、 long、 switch、case、 enum、 register 、typedef、 char 、extern 、return、 union 、const、 float 、short、 unsigned、 continue、 for、 signed 、void、default 、goto、 sizeof 、volatile、 do 、if 、while、 static

  • 变量的使用
#include <stdio.h> 
int main(){
char choose = '\t';//对字符操作%d,显示字符对应的 ASCII码 
printf("%d\n",choose); 
return 0;
}
输出结果:9

字符默认情况为/0

  • 变量的声明:
    没有分配内存空间,使用的时候才会分配,如int a
  • 变量的定义:立刻为我们分配内存空间 赋初值,如int a=0
  • bool类型的变量需要导入(stdbool.h),其值非0即真(1)、0为假(0)

7.运算符

  • 算术运算符


#include <stdio.h> 
int main(){ 
 int a=20;
 if(a++==20) {
    printf("a=20\n");
    printf("a=%d\n",a);
  }else{
    printf("a!=20\n");
    printf("a=%d\n",a);
  }
    printf("a=%d\n",a);
    return 0;
}
输出结果:a=20
         a=21
         a=21

(if在下一板块讲解)
注意:a++是先赋值后计算,++a是先计算后赋值

  • 逻辑运算符


  • 关系运算符


  • 赋值运算符


if语句

1、if(表达式)
 语句

if(x>y)
printf("%d",x);//此时,如果表达式为真,则执行printf语句

2、if(表达式){
 语句1
 } else {
  语句2
  }

if(x>y){
  printf("%d",x);
  }else {
   printf("%d",y);
   }
//此时,如果x>y成立为真,则执行语句printf("%d",x),然后直接跳过else,同时也跳过语句printf("%d",y),去执行之后的语句
//如果x>y不成立为假,则不执行语句printf("%d",x),执行语句printf("%d",x)

3、if(表达式1){
 语句1
 }else if(表达式2){
   语句2
   }else if(表达式3){
    语句3
    }
此时,哪个表达式为真,则运行哪个if后面的语句。如表达式3成立为真,执行语句3


  • 问号表达式(三目运算符)
#include <stdio.h> 
int main(){
    char c;
    if (3>1){
        c='y';
     }else{
        c='n';
      }
return 0;
}
输出结果:y

等价于

      c = 3 > 1 ? 'y':'n';  
  • 逗号表达式
    result=表达式1,表达式2,表达式3 (最终结果为表达式3)
include <stdio.h>
int main(){
    int temp=20;
    if(temp--,temp--,temp--) {
    printf("temp=%d",temp);
    }//17
    int t2=(temp--,temp--,temp--);
    if(t2){
     printf("temp=%d",temp);
     printf("t2=%d",t2);//先赋值后运算
     }  
    return 0;
}
输出结果:tem=17tem=14t2=15

划重点

  • a++和++a 需要明确两者的不同
  • 还有逗号表达式的使用也是重点
  • scanf语句中""中内容不要随意增加,容易出错
    此次内容均是一些基础知识,但是万丈高楼平地起,打好基础十分重要。规范代码形式,了解代码意义,重视小细节。同时要养成随时测试代码的习惯,一步一步来,避免出错。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容