资讯专栏INFORMATION COLUMN

java程序员的c语言学习笔记,一文快速了解

FuisonDesign / 3616人阅读

摘要:结构体也可以包含结构体,就像内部类访问结构的属性和一样。。我觉得这个需要学下数据结构才能更好理解给数据类型起一个新名字则可以通过对于结构体我可以这样再通过变量名就可以简便的声明结构体变量。文件暂时过了一遍预处理器头文件就是扩展名为的文件。

前言

不深入探讨,只是简单了解一下c的相关知识,并留下自己的学习笔记以供参考。

数据类型

在java中,java数据类型分为基本数据类型和引用数据类型
在c中,数据类型分为基本类型,枚举类型,void类型,派生类型(指针类型,数组类型,结构类型,共用体类型,函数类型)。
基本数据类型基本同于java,不过long在java是八字节,在c是四字节,而且c并不能声明byte变量。
变量概念同于java

常量

在java中,用final static能达到常量的效果。
在c中,用define以及const。
例如定义长度常量为10
define length 10;
const int length = 10;

存储类

这个有点奇怪了,

auto

auto只能用在函数里面,即用于局部变量,也是所有局部变量默认的存储类。

register

这个。。离谱

static

静态,和java差不多

extern

连接两个文件的东西

运算符

多了个杂项运算符

sizeof()返回变量大小

&获取地址值

*指向一个变量

条件判断和循环一样

有个goto,但是不建议用

函数

相当于静态方法的意思
定义方法
返回类型 函数名(形参){
函数主体;
}
调用函数类似于java中的静态方法,直接调用即可。
全局变量和局部变量与java基本相似

c的数组声明方式和java不同,例如

double a[3];
double a[]{3.1,2.2,1.123};
其他大概类似

枚举

规则是从定义的第一个开始,之后的每个递增1,从0开始增加。
如果定义了就另算
定义方法为
enum 枚举名{
枚举元素
}
使用
enum 枚举名 变量名。
变量名 = 枚举元素;

指针

这是c独有的东西了
定义方法
数据类型 *指针变量名;
p = &相同数据类型的变量。
输出
printf("%p",指针变量名)输出地址
printf("%d",*指针变量名);输出具体内容;
指针可以加减
而在递增或者递减的时候,加的值取决于数据类型的长度

字符串

c中好像没有String类型,
如果想定义这个
需要
char 变量名[] = “”;

结构体

自定义数据类型
相当于没有方法的类?
定义格式
struct 变量名{
属性
};
也可以在花括号的最后面以及分号的前面申明一个该数据类型的变量。
结构体也可以包含结构体,就像内部类?
访问结构的属性和java一样。。只不过从java的对象变成了声明变量。
如果要把结构体作为形参,需要
void method (struct 结构体名 变量名)
结构的指针
struct 结构体吗 *指针变量名
调用结构体指针的属性需要
指针变量吗->属性

共用体

union 共用体名{
数据类型 变量名
}变量名;
作用在于可以再里面定义多种数据类型,使这个内存空间可以存储不同的数据,配合指针的东西。
访问共用体的成员,通过
变量名.成员变量名;

位域

定义位域结构的时候
struct 位域结构名
{
数据类型 变量名 : 位(填写数字作为数据占的位);
};
位域可以定义无名变量,用来调整位子。
我觉得这个需要学下数据结构才能更好理解

typedef

给数据类型起一个新名字
typedef int awnswer;
则可以通过
answer a = 1;
对于结构体
我可以这样
typedef struct A{

}B;
再通过B 变量名;
就可以简便的声明结构体变量。

文件暂时过了一遍


C预处理器






c头文件

就是扩展名为.h的文件。




错误处理

可变形参

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/121996.html

相关文章

  • Java相关

    摘要:本文是作者自己对中线程的状态线程间协作相关使用的理解与总结,不对之处,望指出,共勉。当中的的数目而不是已占用的位置数大于集合番一文通版集合番一文通版垃圾回收机制讲得很透彻,深入浅出。 一小时搞明白自定义注解 Annotation(注解)就是 Java 提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解) 是一个接口,程序可以通过...

    wangtdgoodluck 评论0 收藏0
  • 某熊技术之路指北 ☯

    某熊的技术之路指北 ☯ 当我们站在技术之路的原点,未来可能充满了迷茫,也存在着很多不同的可能;我们可能成为 Web/(大)前端/终端工程师、服务端架构工程师、测试/运维/安全工程师等质量保障、可用性保障相关的工程师、大数据/云计算/虚拟化工程师、算法工程师、产品经理等等某个或者某几个角色。某熊的技术之路系列文章/书籍/视频/代码即是笔者蹒跚行进于这条路上的点滴印记,包含了笔者作为程序员的技术视野、...

    yiliang 评论0 收藏0
  • 某熊技术之路指北 ☯

    某熊的技术之路指北 ☯ 当我们站在技术之路的原点,未来可能充满了迷茫,也存在着很多不同的可能;我们可能成为 Web/(大)前端/终端工程师、服务端架构工程师、测试/运维/安全工程师等质量保障、可用性保障相关的工程师、大数据/云计算/虚拟化工程师、算法工程师、产品经理等等某个或者某几个角色。某熊的技术之路系列文章/书籍/视频/代码即是笔者蹒跚行进于这条路上的点滴印记,包含了笔者作为程序员的技术视野、...

    shadowbook 评论0 收藏0
  • 一文搞懂C语言回调函数

    摘要:注意,回调函数并不是语言特有的,几乎任何语言都有回调函数。在语言中,我们通过使用函数指针来实现回调函数。回调函数的核心就是函数指针,只要搞懂了函数指针再学回调函数,那真是手到擒来了。总结本文主要讲了如何使用函数指针和回调函数。 什么是回调函数 我们先来看看百度百科是如何定义回调函数的: 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指...

    jcc 评论0 收藏0
  • 一文理解:Java NIO 核心组件

    摘要:的出现解决了这尴尬的问题,非阻塞模式下,通过,我们的线程只为已就绪的通道工作,不用盲目的重试了。注意要将注册到,首先需要将设置为非阻塞模式,否则会抛异常。 showImg(https://segmentfault.com/img/remote/1460000017053374); 背景知识 同步、异步、阻塞、非阻塞 首先,这几个概念非常容易搞混淆,但NIO中又有涉及,所以总结一下。 ...

    Coding01 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<