C语言基础小斋

一、C语言数据类型

  ok,如我们所知,C语言作为大学工科专业的必学课程,其重要性不言而喻;它为我们提供了丰富的数据类型,所以它很适合程序员来编写 数据库 ,如DB2、Oracale都是C语言编写的。

  那么C语言具体又有哪些类型呢?且看如下分解:

    1.基本数据类型

      1)整型 int (long int , long long int)

      2)浮点型 

          单精度浮点型 float

          双精度浮点型 double

      3)字符型  char

    2.构造类型

      1)数组 array 

      2)结构体 struct

      3)共用体 union

      4)枚举 enum

    3.指针类型 void *

    4.空类型 void 

  那么首先,我们要关注的就是基本数据类型,在下面给出了在32/64位编译器环境下,基本数据类型所占用的存储空间:

    类型  名称  存储空间

    int    整型  2个字节(short 2 ; long  4/8)

    char    字符型  1个字节

    float   单精度   4个字节

    double 双精度    8个字节

    void *  指针      4/8个字节

二、变量

跟其他语言一样,C语言中用变量来存储计算过程使用的值,任何变量都必须先定义类型再使用。 为什么一定要先定义呢? 因为变量的类型决定了变量占用的存储空间, 所以定义变量类型就是给变量分配适当的存储空间,以便存储数据。For example ,if you have a char number ,ok, just allocate it for 1 byte, that is enough ,  it is unnecessary to get it more.

  那么,如何定义一个变量呢?

  例如: int a = 10;  如何理解这句代码呢? 为int 类型 的变量 a 分配 一个 4 个字节的内存,并将10赋值给名为变量a的内存;所以,我们不难得出如下的 结论:

  定义变量 : 数据类型 变量名 初始值 

  要注意的

    1. = 是 赋值符号;

    2. 变量名的命名规则(字母、数字、下划线可用做变量名(但是数字不能开头),见名知意,不能和系统保留字相同,不同重复定义)

  something added:

1.局部变量的使用跟其他语言的区别

  1>其他语言中,你声明了一个局部变量后,如果没有经过初始化赋值就使用该变量,编译器直接报错;

  2>在C语言中,1的情况不会发生;但是这样做是很危险的,

      如:

    int main(){

        int b; 

        printf("%d",b);}         大多数人应该觉得变量b打印出来的应该是0,其实不是。因为系统会随意给变量b赋值,得到的不是准确的数据。  

    所以,局部变量还是必须先进行初始化赋值,然后再使用,这样才是最安全的做法。

  3>但是如果是全局的int型变量,系统会默认赋值为0;

2.char的取值范围: ASCII码字符 或者 -128~127的整数

3.char只能存储一个字符

汉字或者字符串需要用字符数组来存储,因为一个汉字占了2个字符。

三、运算

  *除法: 在计算机中两个整型变量相除,结果只取整数部分,而不是四舍五入;

  *取余运算:

    1.也叫模运算;

    2.%两边参与运算的数必须是整数;

    3.取余运算的正负结果只跟%  左边 的数值有关

  * 自加(减)运算 

      10++;     // 这个怎么破 ?   

           // 常量有能进行自加运算啦  ,for example  :

               a++;  -> a = a + 1;

              10++; -> 10 = 10 + 1 ;      这显然是不合理的!

  *有点意思~:

  看这两句:

      int a = 6 /4;     结果  a = 1;

      float a = 6 / 4;  结果 a = 1.000000; 而不是我们可能会猜想的1.500000;  -> 所以参与运算的数值结果与参与运算的数的类型有关;即:

      float a = (float) 6 / 4;   结果就是 1.500000了 , 果然有点意思吧~~

 

|| 需要补充(算术运算符、关系运算符、逻辑运算符的优先级顺序)

四、printf、scanf函数(略,getchar()可以吸收系统中的回车,关于getcha函数记得有点模糊了)

转载于:https://www.cnblogs.com/renlovej/p/4439934.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Cracking the Coding Interview》——第11章:排序和搜索——题目8

2014-03-21 22:23 题目:假设你一开始有一个空数组,你在读入一些整数并将其插入到数组中,保证插入之后数组一直按升序排列。在读入的过程中,你还可以进行一种操作:查询某个值val是否存在于数组中,并给出这个…

gradle打包java项目_gradle打包java项目

转载地址:http://www.gfzj.us/series/gradle/2014/12/12/gradle%E5%B0%8F%E7%B3%BB%E5%88%97(4)--gradle%E6%89%93%E5%8C%85java%E9%A1%B9%E7%9B%AE.html以gradle小系列所举例子为示例,在此处介绍两种gradle发布java项目的方法:fat jar方式该…

堡垒机2.0

一、编辑系统环境变量,让用户登录后自动调用脚本 1 vim /etc/profile 2 python /baolei/ssh_login.py 3 # 判断登录用户是否为 root 用户,root用户退出程序不进行logout操作,否则则logout 4 if [ $? ! 10 ];then 5 echo "Good …

Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原

Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原 近 日在项目当中需要将图片保存到共享对象当中,开始用了俩天的时间做了对象的序列化,并以BitmapData的形式进行了图片的序列化保存共享,因为系统 没有提供更好的接口所以…

java8自定义收集器_使用自定义收集器进行Java 8分组?

我有以下课程。class Person {String name;LocalDate birthday;Sex gender;String emailAddress;public int getAge() {return birthday.until(IsoChronology.INSTANCE.dateNow()).getYears();}public String getName() {return name;}}我希望能够按年龄分组,然后收…

poj 1862 Stripies/优先队列

原题链接&#xff1a;http://poj.org/problem?id1862 简单题&#xff0c;贪心优先队列主要练习一下stl大根堆 写了几种实现方式写成类的形式还是要慢一些。。。 手打的heap&#xff1a; 1&#xff1a; 1 #include<cstdio>2 #include<cstdlib>3 #include<cmath&…

java url下载ics_使用Microsoft Graph API处理外部(Internet / .ics)日历URL

在新的Graph API中&#xff0c;是否可以根据外部.ics日历网址为用户创建新日历&#xff1f;我d like to do is to use a daemon to inject a link to an external calendar into the list of calendars a user has if they don已经有了这样一个链接 . 这将有效地复制用户可以在…

命令行生成jar文件

1.打开cmd&#xff0c;进入编译完后所有类的当前目录 命令行 jar -cvf javaname.jar *.class 这时已经生成了 javaname.jar 不过如果有多个类&#xff0c;双击打不开 2.解压javaname.jar 进入META-INF&#xff0c;编辑MANIFEST.MF: 尾行写入Main-Class:&#xff08;&…

Github链接地址

https://github.com/kzj1/test转载于:https://www.cnblogs.com/lalal/p/4456923.html

java foreach和for循环区别_java相关:老生常谈foreach(增强for循环)和for的区别

java相关&#xff1a;老生常谈foreach(增强for循环)和for的区别发布于 2020-8-18|复制链接下面小妖就为大家带来一篇老生常谈foreach(增强for循环)和for的区别。小妖觉得挺不错的&#xff0c;现在就分享给大家&#xff0c;也给大家做个参考。一起跟随小妖过来看看吧首先说一下f…

关于事件冒泡和捕获的问题

由于习惯于jquery的方便操作&#xff0c;往往让我们慢慢淡忘了原生js应有的功能和属性&#xff0c;今天重温一下事件冒泡和捕获问题。 冒泡&#xff1a;从内向外&#xff0c;如&#xff1a;div > body > html (不同浏览器稍有不同) 捕获&#xff1a;从外向内&#xff0c;…

root无法运行命令解决办法

今天运行一个命令wget(wg再使用tab键无法使用)&#xff0c;如下提示 -bash: /usr/bin/wget: 权限不够 [rootwww /]# ls -Z /usr/bin/wget-rw-r--r--. root root system_u:object_r:bin_t:s0 /usr/bin/wget发现没有执行权限 chmod x /usr/bin/wget -bash: /usr/bin/wget: …

java类编写sql_用JavaBean编写SQL Server数据库连接类

以下为引用的内容&#xff1a;//类conn.db.conndb.javapackage conn.db;import java.sql.*;public class conndb {Connection conn;ResultSet rs;private int count;public conndb() {try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch (Exception ex) {}…

ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath、

1.Request.ApplicationPath->当前应用的目录 Jsp中, ApplicationPath指的是当前的application(应用程序)的目录,ASP.NET中也是这个意思。 对应的--例如我的服务器上有两个web应用域名都是mockte.com 一个映射到目录mockte.com/1/ 另一个影射到 http://mockte.com/2/ …

java timezone id_java.util.TimeZone.setID()方法实例

全屏setID(String ID)方法被用于设置时区ID。这不会改变的时区对象中的任何其他数据。声明以下是java.util.TimeZone.setID()方法的声明。public void setID(String ID)参数ID--这是新的时区ID。返回值NA异常NA例子下面的例子显示java.util.TimeZone.setID()方法的使用package …

c语言中赋值截断

在c语言中进行变量赋值的时候&#xff0c;如果将字节多的数据类型赋给一个占字节少的变量类型&#xff0c;会发生“截断”。 发生这种情况的原因是&#xff1a;在赋值过程中只将占字节较长的变量的地位赋给占字节较少的变量。 如&#xff1a; int i345&#xff1b; char c‘…

创建一个自己的GitHub,创建自己的开源项目

作者是一个大学在读学生&#xff0c;自己在平时的学习中&#xff0c;GitHub上的开源项目给自己提供了很大的帮助。GitHub是目前使用最广泛的分布式项目管理软件&#xff0c;GitHub上面托管了许多非常优秀的开源项目。我觉得每一个从事IT行业都应该有一个属于自己的GitHub。下面…

设计模式之行为型(1)-职责链模式(Chain)

设计模式之行为型(1)-职责链模式(Chain)转载于:https://www.cnblogs.com/lihuali/p/7493415.html

php apache win7,win7安装apache+php

转自百度经验1 系统环境与软件1php5.5.6 下载链接&#xff1a;http://windows.php.net/download/#php-5.5推荐 V11 x64&#xff0c;也就是64bit的。2apache2.4&#xff0c;下载链接&#xff1a;http://www.apachelounge.com/download/同样是推荐 V11&#xff0c;64位的。3前面提…

photoshop 常用快捷键大全

一、文件新建 CTRLN打开 CTRLO 打开为 ALTCTRLO关闭 CTRLW保存 CTRLS 另存为 CTRLSHIFTS另存为网页格式 CTRLALTS打印设置 CTRLALTP页面设置 CTRLSHIFTP打印 CTRLP退出 CTRLQ 二、编辑撤消 CTRLZ向前一步 CTRLSHIFTZ向后一步 CTRLALTZ退取 CTRLSHIFTF剪切 CTRLX复制 CTRLC合并…