Objective-C前奏--C语言
来源:互联网 发布:劲爆体育网络直播 编辑:程序博客网 时间:2024/05/22 01:41
这篇文章的前提是懂java或者其他的一门语言,因为c的知识太多讲不完,所以只是讲点与java的不同点.
最近打算写点关于ios的开发,ios开发离不开OC,OC要先了解C,此博客就为此而诞生了
基础性的东西就不多做介绍了,不然c太多了,其中会与java对比着讲
一.基本数据类型
java数据类型 和长度 int 4个字节 double 8个字节 float 4个字节 long 8个字节 short 2个字节 boolean 1个字节 char 2个字节 byte 1个字节
C数据类型 char 1, int 4, float 4, double 8, signed, unsigned, long 4, short 2 and void
java
Int 4
Doulbe 8
Float 4
Long 8
Short 2
Boolean 1
Char 2
Byte 1
c
Int 4
Doulbe 8
Float 4
Long 4
Short 2
无 (0假1真)
Char 1
无
c语言中数据类型比java少一些,在c语言中没有boolean类型的数据,那怎样表示数据类型呢? int 1 代表真 0 代表假
c 语言中没有String类型的数据 java中表示一个字符串 String , c语言中表示字符串 通过char类型的数组来表示字符串
c 语言没有byte类型 所以用char的类型表示byte类型
代码:
#include <stdio.h> #include <stdlib.h>// sizeof(); c语言的一个函数 可以把 某种数据类型的长度获取出来 int main() { // %d 类似sql语句的? 占位符 printf("char的长度为%d\n", sizeof(char)); printf("int的长度为%d\n", sizeof(int)); printf("float的长度为%d\n", sizeof(float)); printf("double的长度为%d\n", sizeof(double)); printf("long的长度为%d\n", sizeof(long)); printf("short的长度为%d\n", sizeof(short)); //signed, unsigned, 数据类型的修饰符 // signed int ; 代表的是有符号的int的数据 unsigned int ; 无符号的int数据 printf("signed int的长度为%d\n", sizeof( signed int)); printf("unsigned int的长度为%d\n", sizeof( unsigned int)); // 符号的修饰符 只能修饰 整数类型的数据 long int // 不能修饰 浮点型的数据 float double // printf("signed float的长度为%d\n", sizeof( signed float)); system("pause"); // 调用windows下系统的命令 让程序暂停执行 方便观察程序的执行结果 }
结果为
二.基本输入输出函数
%d - int short
%ld – long int
%c - char
%f - float
%lf – double
%x – 十六进制输出 int 或者long int 或者short int
%o - 八进制输出
%s – 字符串
代码:
#include <stdio.h> #include <stdlib.h> main() // 程序的入口函数 { int i = 3; float f = 3.1415; double d = 6.2815001; //精确到小数点后6位,所以打出来的时候没有最后一位 char c = 'A'; //通过单引号定义字符 short s = 2; printf("int i=%d\n",i); printf("float f=%f\n",f); printf("char c=%c\n",c); printf("double d=%lf\n",d); printf("short s=%d\n",s); /*char arr[20] ; //定义一个长度为20的数组 scanf("%s",arr); // 从键盘接受一个字符串,放在c数组里面 printf("arr =%s\n",arr); */ int j ; scanf("%d", &j);//&代表的是取地址 printf("j=%d\n",j); system("pause"); // 调用windows下系统的命令 让程序暂停执行 方便观察程序的执行结果 }
结果为
三.指针
内存条在出厂的时候就已经划分好了地址,例如:0x00002F
什么是指针?举个小例子 int i = 3; 那么0x00002F的别名就是i,而0x00002F这块内存里面的值就是3
这个时候 int* p; p=&i; 那么指针变量p就是i的地址,打印出来的话就是0x00002F,*p就是这块内存里面的值,也就是3,所以改变p的值不会影响到i的值,改变*p的值会影响到i的值,也就是说*p和i其实代表的是同一个变量,代表同一块内存空间
指针了解了,下面做个例子,交换两个数字
void swap2(int* p , int* q){ // 传递的形参为 i 和j 变量的地址 // *p 代表 i *q 代表就是 j int temp; temp = *p; *p = *q; *q = temp;} void swap1(int i ,int j){ // 形参 i 和j 跟主函数里面的i和j是两个不同的变量 printf("子函数 i 地址%#X\n",&i); printf("子函数 j 地址%#X\n",&j); int temp; temp = i; i = j; j = temp;} main() { //利用指针 可以在子函数里面修改主函数里面的数据 int i = 3; int j = 5; printf("i=%d\n",i); printf("j=%d\n",j); printf("主函数 i 地址%#X\n",&i); printf("主函数 j 地址%#X\n",&j); // swap1(i,j); swap2(&i,&j); printf("交换后\n"); printf("i=%d\n",i); printf("j=%d\n",j); system("pause"); // 调用windows下系统的命令 让程序暂停执行 方便观察程序的执行结果 }其中swap1函数并不能改变主函数里的值,因为swap1的参数i和j是主函数里i和j的一个拷贝,并不是主函数的i和j,但是指针就做到了
未完待续...
- Objective-C前奏--C语言
- 【Objective-C】面向对象前奏
- C语言DAY01 - 学习前奏
- 001-iOS开发前奏-C语言笔记
- objective-c语言基础教程
- Objective-C语言知识点
- 读懂Objective-c语言
- Objective-C 语言特性
- 简介Objective-C语言
- Objective-C语言特性
- 简介Objective-C语言
- Objective-C语言:数据类型
- Objective-C语言:属性
- Objective-C语言(3)
- Objective-C 语言入门教程
- Objective-C语言
- OBJECTIVE-C语言基础
- Objective-C语言
- GIT AND READMINE
- 推荐一系列优秀的Android开发源码
- C++ 中int,char,string,CString类型转换
- 使用Endnote进行文献管理
- VC 两个对话框之间的参数传递(1)
- Objective-C前奏--C语言
- 最优二叉查找树(动态规划)
- POJ 1947 Rebuilding Roads(树形DP + 01背包)
- DBA常用视图汇总【不断更新】
- FPGA_&&_Driver_9_6
- win7便笺使用
- shell之echo命令
- c-中的时序点和副作用边际效应
- 数据结构之树与二叉树