C语言基础1-简单类型

简单的介绍了一下C语言的一些小东西,适合有一定工作经验复习用

创建C程序:xcode ->OSX的Application -> Command Line Tool -> 选择C语言

1,示例代码:main函数

#include <stdio.h>

main(){

printf("Hello, World! \n");

return 0;

}

解释1:#include  简单的说:系统的东西用#include<> , 而自己写的东西用#include””

有的时候会遇到#include”..\myFile.h” 和 #include”.\myFile.h”  ,区别在于 ..\ 是当前目录的父目录,而 .\ 是当前目录,

例如如果当前目录是C:\fitst\second , 那..\ 就代表C:\first 目录下, .\代表C:first\second 目录下(即当前目录下)

OC中得#import和#include用法一样,不过#import不会引起交叉编译

解释2:main是C得入口函数,由于C语言是面向编程(不是面向对象)所以需要注意C语言函数一般需要前置声明;

如果项目很大或者参与项目的人员较多,最好还是写一个头文件来放函数声明,写一个实现文件来放函数实现

注意main函数是有返回值的,为int(这个main可以省略掉返回值,但强烈建议任何函数都加上返回值);并且没有返回值应该是void

其实mian也是OC的入口函数,不过不用你管;具体位置就在Supporting Files下有一个main.m ,可以看一下,以后会讲到

解释3:C语言中printf 默认是不换行的,因此需要加上\n 来强制换行,但OC得NSLog和swift的println默认是换行的,毕竟是高级语言吗!

有时候需要输出 双引号 ,单引号等等特殊字符,特别是涉及到多个特殊字符输出,一开始很容易懵了!

不过,简单的办法就是先把你要输出的东西写出来,然后特殊字符前加\

例如:我想要输出 my name is "jiaozk",first name is ‘jiao‘ , last name is ‘zk‘

改成         my name is \"jiaozk\",first name is \‘jiao\‘ , last name is \‘zk\‘

输出printf("my name is \"jiaozk\",first name is \‘jiao\‘ , last name is \‘zk\‘ \n");

至于特殊字符有哪些,请自行google

解释4:大多数语言都需要编译,链接和运行,三个阶段。C语言也是,源文件以ASCII码的形式存储,编译器将其编译成 .obj文件,链接所有相关联的文件,生成exe程序就可以在window上运行了

不过编译,链接和运行作为了解就好!xcode都帮你做了

ASCII码是什么,请大家自行google,ASCII码用处较多,例如比较

2 示例代码:基础类型

void baseType(){

int intType;                              //解释1

double doubleType = 23.6023;  //解释2

char charType = ‘A‘;                 //解释3

bool boolType = true;               //解释4

//string *str = "string";            //解释5

int intArray[3] = {0};              //解释6

}

解释1:声明一个int型的变量,但是如果声明却没有赋值,系统会随机赋值可能会造成不必要的麻烦,所以任何时候声明变量都赋初值是个好习惯

解释2:声明一个long double类型,有四种修饰基本类型的标识符:

long 和short 用来修饰整数的取值范围,long double要比double所能展现的数字更大,不过用的不多;

signed和unsigned 用来区分有符号的还是无符号的,signed是有符号的包括正数负数和0,unsigned是无符号的包括正数和0,不过好玩的是,它们并不会改变数据的长度,也就是所占的字节数,因此如果signed int 的范围是-32768 ~ 32767 (PS:想想为啥是这个范围),那么unsigned int的范围就是 0 ~ 65535

解释3:声明一个char类型,char只能存储一个字符,取值范围是-128 ~127 ,其实这条等价于 等价于char charType = 65 ,因为 A 的ASCII码就是65

解释4:原来C语言是没有布尔值的,只有用1或0来判断,但C99后添加了bool,需要引入 #include <stdbool.h> ,其实还是1表示true,0表示false

解释5:C语言中是没有字符串这种类型的,但可以用char的数组表示,例如:

char charArray[3] = "abc" ; 等价于 char charArray[3] = {‘a‘,‘b‘,‘c‘};

PS:请自行百度为什么前面是双引号,后面是单引号

解释6:声明一个int类型的数组,并且为数组的所有元素赋值0;如果不赋值0,那么不同的编译器可能会为int数组内的元素随机赋值,

例如在xcode中int intArray[3] = {0 , 1};那么intArray[2]取出来就是一个随机值,如下

其实这么写是不规范的,相当于用一个包含两个元素的数组去给一个三个元素的数组赋值

但在xcode中,如果声明一个 char charArray[3];编译器会自动为每个元素赋值‘\0‘

C语言中得数组是固定大小的,申请了多大就是多大

C语言还有二维数组,可以想象成一个长方形,用的不是很多,而且挺简单的,自己google吧

参考文献:

http://www.cnblogs.com/mjios/archive/2013/03/13/2957471.html

http://www.cnblogs.com/mjios/archive/2013/03/13/2957628.html

http://www.cnblogs.com/mjios/archive/2013/03/13/2957946.html

时间: 2024-11-07 22:40:59

C语言基础1-简单类型的相关文章

黑马程序员-C语言基础:指针类型与指针和数组、字符串的关系

//指针变量就是用来存储地址的,只能存储地址 格式:  int  *p;  这个p为指针变量:指针变量占8个字节 类型是用来说明这个指针指向的类型: 比如上边的int代表这个指针变量会指向int类型的存储空间: int *p = &a;//这样一句可以写,此时的*只是一个标志,表示这个*只是表示p是个指针: *p = &a;//这样写就错了:此时*p表示取p指向的空间的值: 指针疑问:指针既然都占据8个字节,那么为什么要划分类型, 是因为当用*p指针取值或者赋值的时候,知道该取几个字节,比

C# 语言基础(简单的输出 输入语句 和 加法运算符)

int a, b; Console.Title = "C# 语言基础-第一堂课";// 标题 Console.BackgroundColor = ConsoleColor.DarkRed;//设置控制台的背景颜色 Console.WriteLine("幼儿园大班第一节课"); Console.WriteLine("请输入a的值,按回车");//输出语句,自动换行 Console.Write("a="); //输出语句,自动不换

PHP语言基础简单整理

1.开始结束标记<? ... ?> 2.定义变量:$变量名 例: $str="锦清笋";不需要指明数据类型 3.输出语句:(1)echo "hello world!";---echo命令(2)print();输出语句,是函数,有返回值.输出成功返回1,失败返回0.(3) printf();格式化输出字符串.例:printf("%d,%f",12,12.3); (4)sprintf();格式化拼接字符串,不是输出语句,只能将字符串拼接.

Go学习笔记(2) 语言基础和数值布尔类型

  1. Go语言环境变量 Go语言开发环境依赖一些操作系统环境变量,常用的环境变量如下: $GOROOT 表示 Go 在你的电脑上的安装位置,它的值一般都是 $HOME/go,当然,你也可以安装在别的地方. $GOARCH 表示目标机器的处理器架构,它的值可以是 386,amd64 或 arm. $GOOS 表示目标机器的操作系统,它的值可以是 darwin,freebsd,linux 或 windows $GOBIN 表示编译器和链接器的安装位置,默认是 $GOROOT/bin,如果你使用的

Lua语言基础(1) -- 类型与值

基础介绍 Lua是一种动态类型的语言.在语言中没有类型定义的语法,每个值都带有其自身的类型信息.在Lua中有8种基本类型,分别是: nil(空)类型 boolean(布尔)类型 number(数字)类型 string(字符串)类型 userdata(自定义类型) function(函数)类型 thread(线程)类型 table(表)类型 以上是Lua中的8中基本类型,我们可以使用type函数,判断一个值得类型,type函数返回一个对应类型的字符串描述.例如: 1 2 3 4 5 6 7 8 9

简单的入门Android开发和Java语言基础[图]

简单的入门Android开发和Java语言基础[图]前言:去年年底到今年年初,我做过简单的智能家居,也实现过一些简单的直连和远程的智能家居.于是就将最简单的通信发布出来:智能家居简单实现-使用ESP8266简单实现和APP通讯由于这方面的资料少之又少,所以阅读量飙升的很快.也有很多人加了好友问我问题.通过问题我发现,很多都是学硬件的.或是做智能家居方面的学生,基本都不会 Android 开发的.问也有很多问我怎么学 Android 开发的.很多的人认知还是停留在学习这种软件开发技术需要去培训机构

2.4.5-Java语言基础(类型提升&amp;强制转换)

自动类型转换(也叫隐式类型转换) 强制类型转换(也叫显式类型转换) 类型转换的原理 什么时候要用强制类型转换? 表达式的 数据类型自动提升 ?  所有的byte型.short型和char的值将被提升到int型. ?  如果一个操作数是long型,计算结果就是long型: ?  如果一个操作数是float型,计算结果就是float型: ?  如果一个操作数是double型,计算结果就是double型. 分析 ?  System.out.println('a') 与System.out.printl

python知识简单总结 - 语言基础 (一)

语言基础 基础知识 pycharm快捷键 快速复制 光标定位到某行或者选中很多行 crtl/command + d 注释 光标定位到某行或者选中很多行 crtl/command + / 删除(剪切) 光标定位到某行或者选中很多行 crtl/command + d pycharm 简单设置 python模版文件设置 command + , -> Editor -> Code Style -> File and Code Templaates -> Python Script 解释器修

【C语言基础】unsigned short类型用于循环的一个难点

我在我的知识星球:“C语言解惑课堂”里的第一篇提出一个问题:[第1篇][C语言基础][unsigned short类型用于循环的一个难点]要查看更多的C语言难点解析或者需要提问的同学,微信扫扫文末我的星球二维码加入吧! 一.[问题] 同学们,今天来道C语言比较有意思的题,C程序代码见下图. for循环中我给了变量para一个初始值1,也让para自增1,但是没有指定for循环结束的条件.你觉得有问题吗?会不会是一个无穷尽的循环?如果有问题你打算怎么修改呢? 二.[解惑] 这个循环是会终止的,不会