c语言大世界————05一时瑜亮?
2014-11-15 21:27
218 查看
前言:
以下内容需要一定的C语言基础,对指针要有稍许了解。此外内容不多,希望按照顺序看下去,或许对你有一定帮助。
内容均以代码+注释给出。时间有限 暂时给出上半部 见谅 算是基础入门吧
以下内容需要一定的C语言基础,对指针要有稍许了解。此外内容不多,希望按照顺序看下去,或许对你有一定帮助。
内容均以代码+注释给出。时间有限 暂时给出上半部 见谅 算是基础入门吧
/* demo5: 一时瑜亮 */ #include "stdio.h" int main(int argc,char **argv) { /* example01:讲解指针 首先把指针当做地址吧,记得我文章提到内存空间,想象成一排房屋一字排开 无限延生,从0开始编号,1,2,3... 就是房屋号码。下面的a_addr 用&取址符号 获得 我在c-free中测试地址是0x28ff44 。这里的0x28ff44就好比是房屋编号。 int *pt_a。'*'这里的作用是告知编译器pt_a是一个指针,这个变量可以存地址 比如0x28ff44。 对于使用 我们还是得用到'*' 比如 *pt_a = 1; 这里理解也很简单,pt_a是一个地址 加上* 表示指向了这个地址内部的数据,好比pt_a = 100,地址100,在房屋号100 *pt_a '*'打个比方,是一把进房屋的钥匙?我打开门了 存了一个东西(也就是赋值1) 两处'*'的作用懂了吗? NEXT--> */ int a_addr = 10; //内存地址0x28ff44房屋内的内容是10哦 printf("the a_addr address is 0x%x\n",&a_addr); //输出0x28ff44(或许你是别的)。 int *pt_a; /* example02:两种声明 前者声明整数b 后者声明指针 类型为int 名为pt_b 有人曾问我,OK 你说pt_b是一个地址 地址嘛 无非就是一个整数 像1 2 3 ... 或者说上文的0x28ff44 既然那么说,好啊,我就声明一个整数b赋值0x28ff44 然后赋值给指针变量pt_b(引文指针变量嘛 说的直白点就是用来存储地址的!) 你会那么写pt_b = b; 一运行,啪!报错,"invalid conversion from 'int' to 'int *' " 知道为啥报错吗? 因为b的类型是整数(int), pt_b的类型是指针(类型int) 两者可不等价 那么现在怎么解决这个问题,简单 类型转换下,既然int (int *)两个类型不一致,我就 来捣乱下,用强制转换方法来(int *)b, 意思就是0x28ff44现在不是int 类型了,而是表示 一个地址啦。那么pt_b=0x28ff44, OK啦 知道我们的房间号是多少啦,还不用钥匙打开看看 里面有啥数据 快点调用*pt_b NEXT--> */ int b; int *pt_b; b=0x28ff44; pt_b = (int *)b; printf("该地址上的内容是%d\n",*pt_b);//不出意外是10.....因为前面a_addr的值10 /* example03: 先来看前3行代码,so easy c_0 c_1都是类型为int 的整数。而int c[2]就是等价 这两个声明,我这只写了两个 要是100个呢,难道你要int c_0 int c_1 ... int c_100 果断用int c[100]啊 指针一样的道理 int *c_pt0 int *c_pt1 我嫌这个太麻烦 于是我写成了数组 int *c_pt[2] 这样写就有点等同于 这个数组有2个元素,由于声明用int * 那么存储的就是指针啦,不管是 c_pt[0] c_pt[1] 都是表示一个指针 这里实在简单 不做扩展啦 NEXT--> */ int c_0; int c_1; int c[2]; int *c_pt0; int *c_pt1; int *c_pt[2]; }
相关文章推荐
- c语言大世界————06一时瑜亮(中)
- win环境下c语言05
- 20170203C语言提升05_编译
- C语言05
- 【C语言探索之旅】 第一部分第四课第二章:变量的世界之变量声明
- 五个开启心智的小故事(2007-05-29 21:54:18) 分类:情感世界
- 互联网世界中的C语言——我的golang学习笔记:1(基础语法快速过)
- 【C语言】05-printf和scanf函数
- 循环控制结构程序05 - 零基础入门学习C语言20
- 函数05 - 零基础入门学习C语言36
- 指针05 - 零基础入门学习C语言45
- WiFi vs.蓝牙:一时瑜亮,各有千秋
- 20170203C语言提升05_编译
- 【C语言探索之旅】 第一部分第四课第二章:变量的世界之变量声明
- 循环控制结构程序05 - 零基础入门学习C语言20
- 数组05 - 零基础入门学习C语言27
- 函数05 - 零基础入门学习C语言36
- iOS开发学习之C语言---C05 函数-3
- 20170107C语言项目05_作业解析与新项目需求
- 黑马程序员——零基础学习iOS开发——05 C语言:进制、内存储存细节、类型说明符、位运算、数组