IOS开发学习记录第4天之C语言学习

(一)、今天我们要学习的主要包括一下内容:

  1、标示符概念及其命名原则

     在C语言中,符号常量,变量,数组,函数等都需要一定的名称,我们把这种名称称之为标识符。

        标识符划分:关健字、预定义标识符和用户标识符

     命名规则:

   (1)、只能由字母、数字、下划线或者美元符号($)组成

   (2)、不能以数字开头

   (3)、不能与关健字重名

   (4)、严格区分大小写

     命名规范:

   (1)、起一个有意义的名字(比如用户名:userName)

   (2)、驼峰命名(如果一个名称有多个单词组成,第一个单词首字母小写其他单词首字母大写,或者每个单词首字母都大写)

     必须是字母、数字、下划线组成,且不能依数字开头,标识符名称不应该和关键字相同

  2、C语言中得注释介绍及使用 

    (1)、//双斜杠注释,又称单行注释  可以注释一行  且被注释的代码不参与编译器编译,也就是说编译器遇到带注释的代码块

       会直接跳过 

        (2)、/**/多行注释,比如:/*我是被注释的内容,程序执行的时候直接跳过此部分内容*/    

  3、数据及数据类型

        什么是数据类型:

     生活中我们时时刻刻都在跟数据打交道,比如我们的年龄,身高,体重,平时生活中处处见到的视频、文档、音乐等等这些都

     可称之为数据,计算机为了存储这些不同的数据,就定义了不同的数据类型。

     数据的计量单位:

    1 B (Byte字节)=8 bit (位)

    1 KB(KByte)=1024 B

    1 MB=1014 KB

    1 GB= 1024 MB

    1 TB= 1014 GB

    C语言中常用的数据类型如下图:

  4、数据类型的内存占用及范围

     数据类型占用字节说明如下图:

  

    在这里我们需要知道的是再Mac 电脑中从10.7以后 都是64位,也就是说我们需要记住Mac 10.7版本以后的电脑中 char 占用

    字节是1个字节,int、float类型占用4个字节、double类型占用8个字节、short类型占用2个字节、long、long long、以及void

    都是占用8个字节 

       不同类型表示的范围

  5、常量的概述及分类及表示方法

     C语言有丰富的数据类型,在开发中,一般用常量或者变量来表示这些数据类型,"量"表示数据。常量,则表示一些固定的

     数据,也就是不能改变的数据。比如人的出生日期、身份证号等。

     常量分类:

      (1)、整型常量,也就是整常数。

        二进制(比如:0b0001)

        八进制(比如:0123)

        十进制(比如:100)

        十六进制 (比如:0x123)

   (2)、实型常量

        单精度 (比如:2.3f)

        双精度(比如:'a')

   (3)、字符型常量

        普通字符

        转义字符 

   (4)、字符串常量,注意字符串常量和字符型常量是不一样的

   (5)、字符串常量

        用双引号括起来,里面可以是字符、数字、符号(比如:"abd","a","***")

   (6)、特殊的字符常量(转义字符)如下图:

 

 

  6、变量的概念及定义

    (1)、定义(声明)

         格式1:变量类型   变量名称;

         比如:int a;     float b;    char ch;

         格式2:变量类型   变量名称,变量名称;

         比如:int a, b;

    (2)、变量命名的规范

         严格遵守标识符的命名原则

         变量名要尽可能的望文知意、简洁

         变量名要按照驼峰命名法(遵守命名规范)

  7、变量的初始化和引用

    (1)、变量的初始化

         int a=10;  int a=10,b=20,c=30;

         int a=10;  int &b; a=b; 

  8、变量的作用域

     (1)、C语言中所有变量都有自己的作用域,申明变量的类型不用,其作用域也不同,C语言中的变量按照作用域可以分为两种,

       一种是局部变量,一种是全局变量。

  根据C语言的说法,局部变量:定义在方法内部的变量叫局部变量;全局变量:定义在方法外部的变量叫全局变量。局部

  变量和全局变量的主要区别在于二者的生存周期不同。

  全局变量的生存周期:静态分配内存,程序运行期间常驻内存,直到程序运行结束。

  局部变量的生存周期:动态分配内存,位于线程堆栈中。

  另外全局变量和局部变量的作用域不同,举例来说,类中的变量作用域在当前类中,类方法中的变量作用域在当前方法中

  全局变量的使用场景:多个地方需要使用,大家共享。

  局部变量的使用场景:只在当前这个地方使用。

  为了更清楚的区别局部变量和全局变量之间的关系,我们看段代码,如下图:

  

        9、变量为什么要区分类型

    (1)、为了更合合理使用内存,不同的数据类型需要存储的空间也是不一样的

    (2)、数据的存储格式不一样,int 4字节,float 4字节,double 8字节

    (3)、不同数据类型他们的运算方式可能不一样的

  10、printf函数介绍及常见用法

    printf函数是一个标准的库函数,表示打印内容到控制台,和scanf函数是一对,scanf是接收用户输入的内容到程序中

    printf函数的调用格式为:

    printf("格式控制字符串",输出项列表);比如 printf("Hello world\n");

    %md问题(设置域宽或者位数)  m是一个数字,可以为正也可以为负数

    printf("%md",10) ; 比如m=5, 打印出来的值为:   10(其中10前还有三个空格),如果为-5 则在10后面会补三个空格。

                printf("%0md",10); 比如m=5,   则打印出来就为00010;

  11、%f输出精度问题

    对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位。

       对于双精度数,使用%lf格式符输出时,前16位是有效数字,小数6位。

  12、scanf函数介绍及使用

    scanf函数也是一个标准的函数库

    scanf("格式控制字符串",输入项列表);   比如 scanf("%d,%d",5,10);

  13、sacnf使用注意事项

    scanf函数原型包含在标准输入输出头文件"stdio.h"中,用于接收键盘输入的内容

    格式:scanf("格式控制字符串",输入项地址列表);

  

 

          int a=0;   scanf("%d",&a);   定义一个int类型的变量a, 用来接收用户输入的值。      

  14、scanf函数原理

    当用户输入内容后,用户输入的内容会被存放到scanf的输入缓冲区中,然后scanf函数会根据格式控制的字符要求,从输入

    缓冲区依次取它想要的内容如果从缓冲区中取得的内容和我的格式要求一致,则把值存放到变量中,如果格式不一致,则

    不修改变量的值(比如:int a=10,但是我们输入的时候输入的是a,那么最后打印出来的值就还会是10),如果scanf缓冲区
    还有内容,
则scanf不会提示我们再次输入。

 

转载于:https://www.cnblogs.com/studyrecord/p/4639376.html

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

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

相关文章

mysql pmm 布署_给 mysql 安装 pmm 监控

PMM 说明PMM(Percona Monitoring and Management) 是一款监控和分析 MySQL 服务的一套工具,可以从图形化的方式看到 MySQL 服务的各种性能指标,慢查询分析、连接数、线程状态、查询信息、缓存信息等等,对分析 MySQL 运行时问题很有帮助。PMM …

java 自定义注解_Java注解

前言近日在阅读开源项目,发现项目里好多奇奇怪怪的注解(DataScope、Log...)看得我一脸懵,不知道大家是否也有过这样的经历,回想了一下,发现自己对于注解的知识,好像只停留在Override。。。异常尴尬,所以今天…

java开发和基于asp.net开发有什么优越性?_java语言的入门开始介绍

java编程语言是目前世界最流行的编程语言,它是在c的基础上开发出来的语言,它取其精华去其糟粕让java语言具有功能强大和简单易用的特征。java具有:面对对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。java可以编写…

响应性web设计实战总结(二)

响应性web设计实战总结(二) 阅读目录 背景知识:Gulp-less安装及配置如下对响应性web总结,之前总结过2篇文章;可以看如下: http://www.cnblogs.com/tugenhua0707/p/4147569.html http://www.cnblogs.com/tugenhua0707/p/4598657.h…

uploadify java 上传_jquery使用uploadify插件实现多文件的上传(java版)

2、安装,由于下载下来的例子是php版本的,所以我只留下了主要的几个文件。如图:4、使用前台页面:pageEncoding"UTF-8"%>html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR…

js 多个定时器_JS中的同步/异步编程

1. 进程(process)/线程(thread)进程process: 电脑端安装很多的应用软件,每当运行一个应用程序,相当于开辟一个进程(而对于浏览器来说,每新建一个页卡访问一个页面,都是新开辟一个进程)任务管理器…

Tomcat免安装版的环境变量配置以及Eclipse下的Tomcat配置和测试

Tomcat是目前比较流行的开源且免费的Web应用服务器,在我的电脑上第一次安装Tomcat,再经过网上教程和自己的摸索后,将这个过程 重新记录下来,以便以后如果忘记了可以随时查看。 注意:首先要明确一点,Tomcat与…

java开发和structs的关系_java---springMVC与strutsMVC的区别

项目刚刚换了web层框架,放弃了struts2改用spring3mvc当初还框架的时候目的比较单纯---springmvc支持rest,小生对restful url由衷的喜欢不用不知道 一用就发现开发效率确实比struts2高我们用struts2时采用的传统的配置文件的方式,并没有使用传…

【推荐】介绍两款Windows资源管理器,Q-Dir 与 FreeCommander XE(比TotalCommander更易用的免费资源管理器)...

你是否也像我一样,随着硬盘、文件数量的增加,而感到对于文件的管理越来越乏力。 于是我试用了传说中的各种软件,包括各种Explorer外壳,或者第三方资源管理器。 最后我确定下来经常使用,并推荐给您的是这两款软件&#…

java类加载器_java底层内功 第一章,类加载器的任性

java类是怎么加载的?类加载机制JVM主要包含三大核心部分:类加载器,运行时数据区和执行引擎。虚拟机将描述类的数据从class文件加载到内存,并对数据进行校验,准备,解析和初始化,最终就会形成可以…

java的requestmapping_SpringMVC RequestMapping 详解

SpringMVC RequestMapping 详解RequestMapping这个注解在SpringMVC扮演着非常重要的角色,可以说是随处可见。它的知识点很简单。今天我们就一起学习SpringMVC的RequestMapping这个注解。文章主要分为两个部分:RequestMapping 基础用法和RequestMapping 提…

redis查询所有key命令_想在生产搞事情?那试试这些 Redis 命令

作者:鸭血粉丝出自:Java极客技术原文:mp.weixin.qq.com/s/WeAamgYYGQfxlsppsn9_lg哎,最近阿粉又双叒叕犯事了。事情是这样的,前一段时间阿粉公司生产交易偶发报错,一番排查下来最终原因是因为 Redis 命令执…

mysql gui 分区_一文彻底搞懂MySQL分区

一.InnoDB逻辑存储结构首先要先介绍一下InnoDB逻辑存储结构和区的概念,它的所有数据都被逻辑地存放在表空间,表空间又由段,区,页组成。段段就是上图的segment区域,常见的段有数据段、索引段、回滚段等,在In…

js 获取域名_RapidDNS域名查询如何联动Goby

前言:http://RapidDNS.io 是一个秒级在线子域名和同IP域名的查询工具。目前拥有25亿条DNS记录,支持A、AAAA、CNAME、MX4种DNS记录类型。由于Goby程序对子域名收集方面不是很完善,这里特编写此插件作为其拓展。可以方便快速获取域名和ip地址信…

iOS 9应用开发教程之iOS 9新特性

iOS 9应用开发教程之iOS 9新特性 iOS 9开发概述 iOS 9是目前苹果公司用于苹果手机和苹果平板电脑的最新的操作系统。该操作系统于2015年6月8号(美国时间)被发布。本章将主要讲解iOS 9的新特性、以及使用Xcode 7.0如何编写一个简单的iOS 9的应用程序等内容…

kafka创建topic命令_0748-5.14.4-Kafka的扩容和缩容

​文档编写目的在Kafka集群资源使用已超出系统配置的资源时,或者有大量资源闲置造成资源浪费的时候,需要分别通过扩容Kafka和缩容Kafka来进行调整。本篇文章Fayson主要介绍如何进行Kafka的扩容和缩容,以及变更后的Kafka集群如何进行负载均衡的…

java 对话框 显示图片_Java对话框上显示图片

手掌心其实有很多种方法可以解决图片显示大小的问题:使用photoshop修改. 优点是可以节省系统资源, 显示图片的时候,不用做处理,缺点是需要了解ps的基本操作使用JDialog 自定义对话框. 优点 可以实现复杂的效果, 缺点,代码量比较多使用ImageIcon, Image 类 实现图片的缩放,. 优点…

class-dump获取iOS私有api

转自:http://blog.csdn.net/sunyuanyang625/article/details/41440167 获取各类iOS私有api 安装工具class-dump 资源地址http://download.csdn.net/detail/map625/8191343 运行class-dump并编译src项目 编译之后在produce中找到编译好的class…

火星云分发全网视频_好用的短视频一键分发软件,让工作效率提高10倍

随着近几年新媒体行业的高速发展,新媒体行业的红利也越来越来,也有越来越多的人想要享受到这波红利,于是不管是个人是企业都纷纷开始进入这个市场。不过也随之诞生了一系列麻烦繁琐的问题,如怎么持续创作内容,怎么花费…

java 采样_Java编程实现beta分布的采样或抽样实例代码

本文研究的主要是Java编程实现beta分布的采样或抽样,具体如下。本文将使用math3提供的工具包,对beta分布进行采样。如下程序是对alpha81,beta219的beta分布函数,进行抽样,共采样10000次。package function;/*** author…