基本功

一.数据类型:

在C语言中,有数据类型这一说法。为何有这一说法?是因为在现实生活中存在着不同的数据,(例如整数,小数,字符即a b c d , . ; "  之类)。由于计算机中所有的数据都是由01串来表示的,所以数据类型的出现就很明显了,它可以知道你输入的数据到底是表示了什么,是表示整数呢,小数呢还是字符。

好好理解一下,然后,,,上图:

此时的你看基本类型那一栏就好。注:浮点型即我上面说过的用来存储小数的。从上图可以发现,在整型之后,还存在三个类型,为什么还需要三个类型,整型用一个类型来表示不就好了吗?不是的,的确,它们都能存储整数,但是,它们存储的整数的大小是不一样的,。各个类型的取值范围如下:ps.如果你存储的值超出你所取得数据类型的取值范围程序会出错。

1. char -128 ~ +127 (1 Byte)
2. short -32768 ~ + 32767 (2 Bytes)
3. unsigned short 0 ~ 65535 (2 Bytes)
4. int -2147483648 ~ +2147483647 (4 Bytes)
5. unsigned int 0 ~ 4294967295 (4 Bytes)

6. long long -9223372036854775808 ~ +9223372036854775807 (8 Bytes)
7. double -1.7 * 10^-308 -1.7 * 10^308(8 Bytes)

由上面可以看到,出现了一个陌生的名词“unsigned”,它代表着在它之后的那个类型不存在负数,这样可以使数据范围扩大一倍,例如上面的2和3。

可以反思,为什么一个整数可以有这么多类型来表示,直接用 “ long long ”来表示一个整数不就行了吗?范围这么大,如果想表示一个很大的数也不容易出错。

为什么,因为计算机的内存是宝贵的,如果你只需要存0到65536之间的数,那用long long类型也太大材小用了。而用unsigned short 则刚好合适。

下面举出实际的C程序:也要自己写一下比较好@.@。

 /* 1在C语言程序中,所有的变量都需要被定义类型之
才能使用下面是定义的过程:在定义的过程中已经
给变量分配了此类型应该有的储存空间。如果上述名词
有不懂得地方,敬请百度 */
// 2双斜线(//)注释掉一行如2,/*...*/ 可以注释掉多行,如1;
// 2注释之后的类容不参与程序运行,可以删去。 #include<stdio.h> //2必须的头文件
int main() //2必须的主函数
{ int a,b,c; //2定义了a,b,c三个整型变量。
double e; //2定义了一个double双精度类型变量。
}

二.输入输出语句。

当然上面的程序是没有问题的。但是运行是不会有任何结果的,为什么呢?因为你还不知道输入输出语句。一个经典的程序。运行一个程序,让它能输出“Hello World”,无引号。

运行结果如图:

运行代码:

 #include <stdio.h>
int main()
{
printf("Hello world!\n"); //输出语句
return ;
}

好,现在提出如下问题,怎么输入一个整数,一问:再把这个数输出出来,二问:如果我想让输出的结果加一呢?

明确一下步骤

1.定义一个变量

2.从键盘上输入一个数字,把这个数字传给变量

3.按下回车,屏幕上显示想要的结果

运行结果:

1.从键盘上输入 12345

2.按一下回车,输出12345

运行代码:

 #include <stdio.h>
int main()
{
int a; //1.定义一个整型的变量a
scanf("%d",&a);//2.输入语句,从键盘上输入a的值
printf("%d",a);//3.输出语句,从屏幕上显示a的值
return ;
}

从上面的代码中,我们又发现了一些陌生的东西: scanf ,printf ,%d, &,这些是什么鬼。。。

一一道来:  1.scanf 是什么?我很想说,百度一下,其实这个百度一下真的能让你明白,所以,百度一下。

2.同理,百度一下。只要搜对关键字,这都能解决。

3.%d是什么,这是一个格式控制符,%d代表下面将输入或输出一个整数。于是下面就出现了这个表。。。

4.为什么scanf里面有个&符号,而printf里面没有?因为&是一个寻址符号,它能够找到变量a所代表的存储空间的地址,同理不懂可以把有关类容直接复制百度,你会得到你想要的。

下面做第二问是不是感觉会很轻松呢?我直接附上代码和结果。

运行结果:

 #include <stdio.h>
int main()
{
int a; //1.定义一个整型的变量a
scanf("%d",&a);//2.输入语句,从键盘上输入a的值
a=a+;//把a这个数的值加一,然后再赋值给原来的a。
printf("%d",a);//3.输出语句,从屏幕上显示a的值
return ;
}

运行结果:

好了,基础功就这些了吧。

课后题目:

从键盘中输入两个数,两数之间用空格隔开,按回车,然后出现两个数的和。

运行结果:

所写的文章基本没有怎么用颜色标注,一个是比较懒,还有就是都觉得挺重要的。

代码就自己写写吧,自己多练习。记得,不懂可以多百度......

简单学C——第一天的更多相关文章

  1. [老老实实学WCF] 第一篇 Hello WCF

    老老实实学WCF  第一篇 Hello WCF WCF(Windows Communication Foundation)是微软公司推出的面向服务技术的集大成者,涵盖继承了其之前发布的所有的分布式应用 ...

  2. 老老实实学WCF[第一篇] Hell wcf

    老老实实学WCF  第一篇 Hello WCF WCF(Windows Communication Foundation)是微软公司推出的面向服务技术的集大成者,涵盖继承了其之前发布的所有的分布式应用 ...

  3. (转)[老老实实学WCF] 第一篇 Hello WCF

    http://blog.csdn.net/songyefei/article/details/7363296#comments 老老实实学WCF  第一篇 Hello WCF WCF(Windows ...

  4. drf框架使用之 路飞学城(第一天)

    1. 路飞学城第一天: 知识点 使用的是序列化与反序列化的使用: 1.创建一个公共相应的Json方法: #创建一个公共响应的类: class LuffyResponse(): def __init__ ...

  5. 入木三分学网络第一篇--VRRP协议详解第一篇(转)

    因为keepalived使用了VRRP协议,所有有必要熟悉一下. 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是解决局域网中配置静态网关时,静 ...

  6. 简单学C——第四天

    数组 在学数组之前,有必要把前面的知识复习一遍,当然我的复习,仅仅只是提一下,而对于你,则应该认真的看一下前面的知识点,不懂可以百度,哈哈. 前面我们大致学了 1.定义变量,2.数据的输入与输出,3. ...

  7. 简单学C——第二天

                 控制结构(-) 相信大家对流程图肯定很熟悉.下面我将介绍的正是关于此方面的,c语言中,控制结构大体分为选择结构和循环结构. 一.选择结构:     先贴出一般用于选择结构的语 ...

  8. 简学Python第一章__进入PY的世界

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  9. Flask最强攻略 - 跟DragonFire学Flask - 第一篇 你好,我叫Flask

    首先,要看你学没学过Django 如果学过Django 的同学,请从头看到尾,如果没有学过Django的同学,并且不想学习Django的同学,轻饶过第一部分 一. Python 现阶段三大主流Web框 ...

随机推荐

  1. 应用360云盘与SVN版本管理服务器搭建基于云端的版本控制软件

    步骤一:(安装软件) 1.TortoiseSVN 2.VisualSVN-Server-2.71 3.安装云盘客户端360wangpan_setup 步骤二:(VisualSVN Server设置) ...

  2. Java+protobuf 实例

    之前开发都是JSON格式, 据说用这种格式的 安全, 输入输出全是二进制文件,且 数据占用内存小. 主要永远移动端数据传送.以下是代码: controller: 请求的是实体: package cn. ...

  3. C# 打开PPT文件另存为PPTX

    /// <summary> /// rename PPT /// </summary> private static void renamePPT() { //add refe ...

  4. Light OJ 1114 Easily Readable 字典树

    题目来源:Light OJ 1114 Easily Readable 题意:求一个句子有多少种组成方案 仅仅要满足每一个单词的首尾字符一样 中间顺序能够变化 思路:每一个单词除了首尾 中间的字符排序 ...

  5. Qt绘图之QGraphicsScene QGraphicsView QGraphicsItem详解

    Graphics View提供了一个界面,它既可以管理大数量的定制2D graphical items,又可与它们交互,有一个view widget可以把这些项绘制出来,并支持旋转与缩放.这个柜架也包 ...

  6. Qt 学习之路 :动态视图

    Repeater适用于少量的静态数据集.但是在实际应用中,数据模型往往是非常复杂的,并且数量巨大.这种情况下,Repeater并不十分适合.于是,QtQuick 提供了两个专门的视图元素:ListVi ...

  7. Microsoft Windows Server 2008 R2 IIS7.5安装指南

    一.IIS安装步骤: 1.安装Windows Server 2008 R2(见 附录一) 2.配置计算机名称和IP地址(见 附录一) 3.配置成员服务器(见 附录一) 4.点击任务栏上的“服务器管理器 ...

  8. HDU 4294 Multiple(搜索+数学)

    题意: 给定一个n,让求一个M,它是n个倍数并且在k进制之下 M的不同的数字最少. 思路: 这里用到一个结论就是任意两个数可以组成任何数的倍数.知道这个之后就可以用搜索来做了.还有一个问题就是最多找n ...

  9. Lua学习----面向对象编程

    1.类 再Lua中可以使用表和函数实现面向对象,将函数和相关的数据放置放置于同一个表中就形成了对象.例如: Measure = {width = 0, height = 0} function Mea ...

  10. HTML5 canvas createRadialGradient()放射状/圆形渐变

    定义和用法 createLinearGradient() 方法创建放射状/圆形渐变对象. 渐变可用于填充矩形.圆形.线条.文本等等. 提示:请使用该对象作为 strokeStyle 或 fillSty ...