第一课 C语言简明教程

1序言:

  1与Java、C#等高级语言相比,C语言却非常简单,学习简单,使用也简单,但是也非常重要,到目前为止基本上操作系统的内核代码超过百分之九十使用C语言完成,因此学好C语言是学好计算机这门课程的基础,特别是进入系统编程尤为明显。

  今天是本人复习C语言课程的第一课,主要重新记录一下C语言的基础知识,这节课涉及到C语言的结构、变量以及类型、输入输出、条件判断以及循环知识。

2知识点:

  2.1 C语言的结构

     2.1.1 通常情况下C语言程序是由:

       1.相关的代码注释,使用/* ··· */可注释单行或多行,也可以用//单行注释(C99标准);

       2.定义相关变量,全局(静态)变量或局部(静态)变量;

       3.具有返回值int的main入口函数;

       4.如果使用外部函数则需要引入头文件;

         5.可有可无返回值其他函数方法;

       6.使用代码块表示程序的相关判断;

       下面来看下代码;

#include <stdio.h>                   #调用系统函数则需要使用此头文件

/* 入口函数 */
int main(void)                       #程序入口函数main,此时参数值为void代表未传参数
{                                         #main入口函数从这里开始,代码块开始处
    int data;                           #此data局部变量未初始化且后面未赋值如果直接输出其值是未知的
    static int cdata;                  #未初始化局部静态变量为0存储与bass,以初始化的存储于data
    char* p = "Hello World!\n";      #定义局部变量p并赋值
    printf(p);                       #调用系统函数,此函数在stdio.h中
    int flag = Show(p);              #调用具有返回类型为int的自定义函数Show(char* p)
    return 0;                        #该方法具有返回值int
}                                       #main代码块结束处

/* Show函数
    参数:char* p
    返回值:int
 */
int Show(char* p)
{
    printf(p);
    return 1;
},

//全局变量
int golbal_data;               #未初始化的变量(存储bss)为0,已初始化的全局变量存储在data

  

  2.2 变量以及类型

    2.2.1 数据类型

      看如下图:

      其中[]中括号代表可有可无;int类型范围取值是:-2^(32-1)至2^(32-1)-1,因此类推其他也是这样计算;int、float、double都是表示最少位数,因为跟操作系统位数有关,比如long intzai 32位操作系统下,跟int类型占用字节数是一样的,但是在64位下就不同,long int是8个字节的。当然还有一些类型比如iso c99扩展类型:int8_t总是8位,int16_t总是16位。可用sizeof(int)、sizeof(long)打印出其在当前平台下的占用字节数。一般尽量使用int类型:效率比较高;double精度够;尽量少用unsigned.

printf("%d\n",sizeof(int));
printf("%d\n",sizeof(long));
printf("%d\n",sizeof(char));
printf("%d\n",sizeof(float));
printf("%d\n",sizeof(double));

    2.2.2 常量表示

      2.2.2.1 常量分为:数值常量、字符常量、字符串常量、符号常量,看如下代码:

const int i = 123;      #代表整型常量
const int i = 033;       #代表整型常量使用八进制表示
const int i = 0x1;      #使用十六进制表示
const float f = 1.2222;#单精度浮点型,默认带f
const double b = 123.1234567d; #双精度浮点型使用d表示
const char c = ‘a‘;       #字符常量
const char cn = ‘\\‘;     #斜杠转义

      2.2.2.1 看如下代码:

pirntf("%d\n",100);                    #整型直接表示
pirntf("%o\n",100);                    #八进制表示
pirntf("%x\n",100);                    #十六进制表示
pirntf("%f\n",1.1111f);                #单精度表示,单精度常量用f表示
pirntf("%f\n",1.11111111L);         #双精度用单精度表示只显示小数点6位数,常量后面使用L表示双精度

  2.3 格式化输出

    2.3.1 使用占位符输出,看如下代码:

int a = 100;
float f = 1.123456f;
double d = 1.12345678L;
char c = ‘A‘;

printf("%d\n",a);    #使用%d输出整型a;%u:表示无符号十进制;%ld代表长整型。其中前面可以加上数量比如%2d代表2位;
printf("%f\n",f);    #使用%f输出浮点型f;%2f代表2位浮点型;%2.3f代表2位整数3位小数;%-2.3f同理前面不过且向左靠齐,小数点不够补0对齐。
printf("%c\n",c);    #使用%c输出字符c;

    具体可以看看这边文章

  2.4 条件判断

    2.4.1 运算符

      2.4.1.1 通常情况下我们常用的运算符:

        一级:(),[],.,->是按左至右顺序;

        二级:-(负号),++,--,*(取值),&,!,~单目运算符是按右至左,这里特别注意++跟--有前置跟后置区分;sizeof表达式;

        三级:*,/,%是按左至右计算;

        四级:+,-是按左至右计算;

        五级:<<,>>是按左至右计算;

        六级:>,>=,<,<=是按左至右计算;

        七级:==,!=是按左至右计算;

        还有一些这里就不一一列举了比如复合运算符,大家可以看看这边文章这比较详细了。

    2.4.2 条件判断

      2.4.2.1 常见条件判断,看如下几种:

int a = 0;

#单if判断
if(a == 0)
{
    //当a=0操作
}

#if-else判断
if(a==0)
{
    //当a等于0时操作
}
else
{
    //当a不等于0时操作
}

#if-elseif-else判断,中间可以有多个else if,最后的else也可有可无
if(a == 0)
{
    #当a等于0时操作
}
else if(a == 1)
{
    #当a等于1时操作
}
。
。
。
else
{
    #前面条件不符合运行这,相当于默认操作
}

      2.4.2.3 创建类型的逻辑判断,看如下:

int a = 0;
int b = 1;
int c  = 2;

if(a == 0 || b == 2)     #因为是逻辑或会产生短路(一个为真结果就真不会再去判断b是否等于2)
{
     #操作
}

if(a == 0 && b == 2)    #因为是逻辑与也会产生短路(1个为假时结果就为假不会再判断b是否等于2)
{
     #操作
}

if(a == 0 || b == 2 && c == 1) #因为&&运算符比较高,此相当于a == 0 || 0这样结果为真
{
     #操作
}

  

      2.4.2.3 switch条件

switch(variable)
{
   case A:
      //program code
      break;
   case B:
      //program code
      break;
   case C:
      //program code
      break;             #这个break语句一般情况都会有,当然不排除case one,case two都执行
   …
   default:               #养成习惯最后的default一定要有即使没语句;
   break;
}

#这个variable关心最多的是什么类型,这里说下:int,char,byte,short是不是就只是这几个呢,答案是:#ANSI标明是所有类型。但是在某些平台下也会报错的不能所有类型,不过一般能转整型的据可以,包括枚举。float一般不用都会报错!!!

  2.5 循环语句

    2.5.1 for循环,看如下代码:

int a = 10;
for(int b = 0;b < a; b++)
{
    printf("%d\n",b);
}
#也可以写出如下,下面的循环b = 0设置都可以省略
int a = 10;
int b = 0;
for(b=0;b < a; b++)
{
    printf("%d\n",b)
}
#一般情况下我们大都是使用第一张方式

    2.5.2 while 以及do-while(),看如下代码:

#上面的for语句可以改写
int a = 10;
int b = 0;
while(b < a)
{
     printf("%d\n",b);
}

#也可以使用do-while()语句,但是结果却不一样因为这个语句先执行在判断所以它比前面的循环多了一次如下
int a = 10;
int b = 0;
do
{
     printf("%d\n",b);
}while(b < a)

这节课的C语言基础就先到这里!

第一课 C语言简明教程,布布扣,bubuko.com

时间: 2024-08-01 22:42:34

第一课 C语言简明教程的相关文章

第一课 Delphi7完全自学教程

首先声明,我会以delphi7教程为主,可能会在这方面用的时间比较多,废话不多说了,今天给大家带来delphi7中最基本的面向对象程序设计语言. delphi是可视化的编程语言,delphi利用提供可视的"组件",像组件里添加一些功能或命令,该程序就有了自己所拥有的功能,比如说 给组件“Button1”添加双击事件,然后干什么了?给窗体起个名字,或给按钮起一个名字都可以.这就是可视化编程语言带来的优势,尤其delphi使用及其方便. 先来讲讲delphi中的类和对象分别代表了什么? 类

SQLite第一课 sqlite3.exe使用教程

1).open 打开数据库 例子: sqlite> .open test.db 注意:>后面有点 2) .tables 查看数据库包含的表名 例子: sqlite> .tables 注意:>后面有点 3) .schema 查看数据库中所有的表的结构 例子: sqlite> .schema students 注意:>后面有点 4) 执行sql语句 例子: sqlite> select * from students where StudentID = 3 ; 注意:

第一课 T语言关键字(版本TC5.0)

关键字 TC综合开发工具的语法里包含了大量的关键字,而且对TC综合开发工具支持的关键字都做了亮色处理,以便大家在写脚本的时候容易区分. 关键字在使用的时候,都有特定的作用,不能作为变量名.函数名等等使用,如果使用了,编译的时候会出现错误提示,请大家记住这点. 关键字解释 关键字 描述 英文 中文 var 变量 用来定义变量的关键字 function end 功能 结束 用来自定义功能的关键字 if elseif else end 如果 否则如果 否则 结束 流程语句 if:主要是用来判断某个条件

[中国寒龙联盟出品]C语言基础知识视频教程第一课-C语言简史,特点,基本结构,函数printf()和scanf()使用和c语言的开发过程。

本视频由中国寒龙收集整理发布,更多请关注我们的博客和,我们的官网:www.hackerschina.org  感谢朋友们的支持!

VIP会员穆泽录制的易语言POST教程

https://www.zygx8.com/thread-11527-1-1.html 第一课:易语言扫盲 第二课:易语言基础 第三课:变量与数据类型 第四课:类型转换与运算符 第五课:自定义数据类型 第六课:流程控制语句 第七课:数组 第八课:子程序的调用 第九课:系统核心支持库(文本操作) 第十课:系统核心支持库(文件读写) 第十一课:超级列表框 第十二课:初识Post/Get 第十三课:Fd软件安装与使用 第十四课:开发者工具使用 第十五课:抓包数据解析 第十六课:伪装IP 第十七课:对接

【C语言探索之旅】 第三部分第一课:SDL开发游戏之安装SDL

内容简介 1.课程大纲 2.第三部分第一课: SDL开发游戏之安装SDL 3.第三部分第二课预告: SDL开发游戏之创建窗口和画布 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串

【C语言探索之旅】 开宗明义及第一课:什么是编程?

内容简介 1.课程大纲 2.第一部分第一课:什么是编程? 3.第一部分第二课预告:工欲善其事,必先利其器 ? 课程大纲 不知道为什么,一直对C语言有一种很深厚的"情怀"(类似老罗对锤子手机的那种),说不出来. 也许因为C语言是很多前辈谆谆教诲说一定要学一下的一门编程语言:也许因为C语言是自己学习的专业"嵌入式系统"的首要语言:也许因为C语言自1972年诞生以来历经43年依然独领风骚,位列编程语言排行榜首位:也许因为"C语言之难,难于上青天",自己

2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C

2011年冬季斯坦福大学公开课 iOS应用开发教程是个很经典的教程,这个老头讲的很给力.做笔记总结. 第一课名称: MVC and Introduction to Objective-C 这课的主要内容有: iOS的概述  -什么是iOS MVC - 面向对象的概念 Objective-C-介绍下语言的概念 iOS包括四层 内核 内核是mach 4.x BSD UNIX内核 mac OS  10操作系统,是个多任务的UNIX内核,在这层上提供了网络,socket ,安全机制,文件系统,大部分这些

C++自学教程第一课——你好世界,我是柠檬鲸。

大家好啊,一年一度的柠檬节——额,好像不止一度的柠檬节,它又到了!在这个悲伤的日子,我决定开启一个C++的教程,主要是为了复习自己的C++知识,另外顺便给新手们一个了解C++的方向. 本教程主要面向C++初学者,如果你先前学过C语言或者Java,学起来将会比较轻松一点. C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计. 在我真正接触编程之前,我向往的一直是Java,因为当时喜欢玩Min