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。。。异常尴尬,所以今天…

JS 判断滚动底部并加载更多效果。。。。。。。。。

JS 判断滚动底部并加载更多效果。。。。。。。。。 <html lang"zh-cn"> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <title>js网页滚动条滚动事件 </title> <style type"…

mysql 格林时间转换_oracle中将格林威治时间转化为一般时间

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家&#xff0c;也给大家做个参考。to_char(trunc(b.starttime/1000/60/60/24)TO_DATE(1970-01-01 00:00:00,yyyy-MM-dd hh24:mi:ss),yyyy-mm-dd)|| ||lpad(mod(trunc(b.starttime/1000/60/60),24)…

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

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

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

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

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

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

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

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

Android WebView Long Press长按保存图片到手机

<span style"font-size:18px;">首先要先注册长按监听菜单private String imgurl "";/**** 功能&#xff1a;长按图片保存到手机*/Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {super.onCreateCo…

specification java_使用JPA实现Specification规范模式 -解道Jdon

使用JPA实现Specification规范规格模式由DDD之父 Eric Evans 和OO之父 Martin Fowler定义的规范(Specification也称规格模式)模式article 越来越受到广泛应用&#xff0c;本文介绍如何使用JavaEE 持久层规范JPA实现规格模式&#xff0c;其实现思想也适合其他持久层框架。案例源…

sublime用cmd窗口调试python_如何使用xdebug和sublime调试python脚本

然后我去了XDebug.崇高-设置&#xff0c;但我不确定如何配置它(我链接到什么&#xff0c;它需要什么网址&#xff0c;等等…){// For remote debugging to resolve the file locations// it is required to configure the path mapping// with the server path as key and loca…

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

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

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

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

python unicode error_关于GAE中运行python出现unicode decode error

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼老问题了&#xff0c;但因为本人不会python语法但却要用&#xff0c;找了很久解决办法&#xff0c;比如添加一行# -*- coding: utf-8 -*-但还是不行。。主要errorUnicodeDecodeError: *ascii* codec can*t decode byte 0xb0 in pos…

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

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

java rpg项目代码_java rpg游戏代码(移动保存读取)

package ggg;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.io.*;public class Tank1 extends JFrame{//用来存储对应的图片的二维数组 (这里的icon数组&#xff0c;只是用来将我们设置好的数组在界面上显示出来&#xff0…

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

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

Java学习二:Javac Java的学习(原创)

安装完了JDK&#xff0c;就可以编译、执行简答的Java程序了&#xff0c; 一、Javac ,Java 路径名和包名的关系&#xff1a; 在D盘下&#xff0c;建文件夹Test&#xff0c;在Test里创建文件Java1.java(类名要与文件名一致&#xff09; Java1.java : package Test; public c…

java的requestmapping_SpringMVC RequestMapping 详解

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

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

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