java|java程序员的c语言学习笔记,一文快速了解
文章目录
- 前言
- 数据类型
- 常量
- 存储类
-
- auto
- register
- static
- extern
- 运算符
-
- sizeof()返回变量大小
- &获取地址值
- *指向一个变量
- 条件判断和循环一样
- 函数
- c的数组声明方式和java不同,例如
- 枚举
- 指针
- 字符串
- 结构体
- 共用体
- 位域
- typedef
- 文件暂时过了一遍
- C预处理器
- c头文件
- 可变形参
前言 不深入探讨,只是简单了解一下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的文件。
文章图片
文章图片
文章图片
文章图片
文章图片
错误处理
文章图片
可变形参 【java|java程序员的c语言学习笔记,一文快速了解】
文章图片
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量