C语言的理解

指针

C语言中的两个符号“*“  ”&“ 分别是间接表示符,地址表示符。

我们都知道,计算机是通过地址来寻找变量的值的,因此我们可以认为是地址间接表示了变量的值,变量名是直接表示变量;

像int *p 这样的声明,表示 *P是我们常用的变量,去掉*,即p表示的是一个地址。

结构数组

int float 等是C语言一开始就定义好的一种数据类型,功能比较单一。

那么我们可以通过结构数组来设计自己的数据类型。

即:

struct name {

}

这样就设计好了一种自己的数据类型,其中name 就像int float 一样。

指针需要有数据类型,因为同一个值,不同的数据类型占用的内存空间大小不同,指针在地址级别上进行遍历时,地址自增的大小也不相同,类似的结构数组指针也是如此,这样结构数组就和int float 等一样拥有着同样的性质。

通过结构数组我们可以像创造自己的积木一样声明各种类型的类型,在通过这些积木我们又可以设计出各种数据结构,可能C语言的灵活性就体现在这里吧!

常见的数据结构:

链表  栈   队列   树    哈希  

时间: 2024-08-02 07:19:30

C语言的理解的相关文章

《七周七语言:理解多种编程范型》のIo课后习题答案

哎,因为上周忙着写OAuth2.0服务端框架草稿 ,耽误了一周学习Io Language了. 本篇习题解答是接着 <七周七语言:理解多种编程范型>のRuby课后习题答案 Io是原型语言,类似于JavaScript,并不区别类和对象,所有的东东都是对象,对象的数据结构就是由键值表来维护的(在Io中就是所谓的槽),通过各种消息传递给对象来实现打印输出,复制对象等功能.因为语法非常简单(也木有语法糖),所以你可以尽情构建自己的库和功能. 第一天: 1. 对1+1求值,然后对1+"one&q

ios-(2)第一个C语言程序(理解编译、连接、运行)

一.开发工具的选择 1. 可以用来写代码的工具:记事本.ULtraEdit.Vim.Xcode等. 2. 选择XCode的原因:苹果公司官方提供的开发利器.简化开发的工程.有高亮显示功能. 3. 使用XCode新建一个C程序的源代码文件(扩展名为.c或者.C) # 开发XCode # 新建文件 # 选择文件类型 .c 二.代码编写 1.程序结构 * C程序的结构:由函数组成 # 任何一个C语言程序都市有一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为"函数&q

堆栈--java语言的理解

堆栈 1,概要 堆栈是两种数据结构.堆栈都是一种数据项按序排列的的数据结构,只能在一端进行(称为栈顶(top))对数据项进行插入和删除. 要点:堆,列队优先,先进先出.栈,后进先出(Last-In/ First-Out). 2,对比(Java语言) 1.栈(stack)和堆(heap)都是java用来在Ram中存放数据的地方. 2.栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器.但缺点是,存在栈中的数据大小和生存期必须是确定的,缺乏灵活性.另外,栈数据可以共享.堆的优势是,可以动态

对于语言的理解

本文来聊聊语言,笔者前后已经接触过近10种编程语言,回过头想想,才慢慢的了解编程语言的本质. 按个人理解,编程语言和自然语言(指人类交流语言,如汉语,英语)本质上并无区别.为什么?用看程序语言的方式看自然语言,那么:自然语言有很多个关键字或者说全局变量(各种词语.单词),这些关键字经过一定的语法排列最终可以形成各种句式,通过这些句式可以实现人与人之间的交流.自然语言也可以定义“变量”,也就是造新词,只不过现在自然语言的词库已经很庞大了,基本不需要新的词语. 编程语言与自然语言的区别一个是前面说的

《七周七语言:理解多种编程范型》のruby课后习题答案

本系列是<七周七语言>的课后习题答案.这本书不拘泥于语法细节,而是横向比较各种编程语言(非热门)之间的编程范式. 是本对编程觉悟能有所帮助的好书,这里就不多做介绍了,感兴趣的同学不妨去看一下. 不得不说,Ruby的风格很黑客. 1. 打印字符串"Hello, world." puts "Hello, world." 2. 在字符串“Hello, Ruby.”中,找出"Ruby."所在下标. puts "Hello, Ruby

C语言指针理解patr1

今天在看<Head First C语言>中,书中的代码是*lat=*lat+1;我则写成了*lat++:结果是并不能得到lat指针的内容加一.之后发现原来在C语言中*解指针运算符 与++后自增运算符的优先级是相同的,*p++,后自增运算符++只作用于p,并不能作用于*p(如果*的优先级更高的话才行). 之后在调试中又发现了一个之前不了解的地方,在C语言中栈的存储是向低地址扩展,也就是先声明的变量在内存中反而内存地址是更大的. 1 #include <stdio.h> 2 void

对C++不是类型安全语言的理解

参见脚本之家:http://www.jb51.net/article/37847.htm 在C++中,可以把0当成bool类型的false,也可以当做int中的数字0.则表示C++不是类型安全语言. 类似的,MFC中的CString也不是类型安全的类.因为其他类型的数据可以通过CSting中的成员函数Format转换成CString. 1 #include<iostream> 2 3 using namespace std; 4 5 bool fun()//函数返回类型是bool,但是我们在函

七周七语言:理解多种编程范型pdf

下载地址:网盘下载 作者简介  · · · · · · 作者简介: Bruce A. Tate RapidRed公司总裁,该公司主要为Ruby轻量级开发提供咨询.他曾任职于IBM公司,并担任过多家公司的客户解决方案总监和CTO.著作有十余本,包括荣获Jolt大奖的Better, Faster, Lighter Java. 译者简介: 戴玮 80后宅男,中科院自动化所在读博士,热爱机器学习与计算机视觉.编程喜C#.Ruby.Haskell而厌Java. 白明 Neusoft某开发部技术总监,拥有多

《OpenGL着色语言》理解点记录三

“帧缓冲区”中的“帧”的含义? “帧”是连续图像中的一幅,3D可视化程序最终都是转化为一幅幅的图像输出在显示器上,这一幅幅的图像叫做叫“帧”. 解释“glBlendFunc(GL_SRC_ALPHA,GL_ONE);”的含义. 假定源颜色值为(0.3,0.4,0.6,0.5),目标颜色值为(0.5,0.8,0.3,1.0),OpenGL则首先获得源物体的alpha值0.5,用它做混合因子,乘上源物体的各颜色分量,得到(0.15,0.2,0.3),然后选择1作为目标混合因子乘上目标物体各颜色分量得