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语句中""中内容不要随意增加,容易出错
    此次内容均是一些基础知识,但是万丈高楼平地起,打好基础十分重要。规范代码形式,了解代码意义,重视小细节。同时要养成随时测试代码的习惯,一步一步来,避免出错。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容