一、数据类型

1.1 基本数据类型

整型:int, long,unsigned int,unsigned long,long long……

字符型:char

浮点型:float, double……

【例子】

//no.1
int a,b,c;
a = 1;
b = 2;
c = a + b; //no.2
char s;
s = ‘a’;
float f;
f = 3.1415;

1.2 结构体类型

定义:用系统已有的不同基本数据类型或者用户自定义的结构型组合成的用户需要的复杂数据类型。

【例子】

struct Student{
int num;
char name[20];
int age;
float score;
}; struct Student s1,s2;
s1.num = 101;
s2.num = 102;

改进:指定新的类型名来代替已有的类型名

typedef int Integer;
typedef float Real; int i,j; ——>Integer i,j;
float a,b; ——>Real a,b;

使用typedef改进结构体

typedef struct Student{
int num;
char name[20];
int age;
float score;
}Student; Student s1,s2;
s1.num = 101;
s2.num = 102;

1.3 指针类型

一个变量的地址称为该变量的“指针”,专门存放变量地址的一类变量成为“指针变量”

【例子】

//no.1
int *a;
int b = 0;
a = &b;
*a = 1; ——>b = 1; //no.2
char *c;
char d = ‘a’;
c = &d;
*c = ‘A’; ——>d = ‘A’; //no.3
typedef struct Student{
int num;
char name[20];
int age;
float score;
}Student; Student s1;
Student *s1_p;
s1_p = &s1;
s1.age = 23; ——> (*s1_p).age = 23;
——> s1_p->age = 23;

二、函数

2.1 被传入函数的参数是否会改变,执行结果是多少,为什么?

//no.1
void fun(int num){
num++;
} int a = 1;
fun(a);
printf(“%d”,a); //no.2
void fun(int &num){
num++;
} int a = 1;
fun(a);
printf(“%d”,a); //no.3
void fun(int a[]){
a[0]++;
} int a[10];
a[0] = 1;
fun(a);
printf(“%d”,a[0]);

三、动态内存分配

3.1 使用malloc函数分配空间

函数原型:void *malloc(unsigned int size);

函数作用:在内存的动态存储区中分配一个长度为size的连续空间,并返回所分配第一个字节的地址

float *f = (float *)malloc(4);
char *c = (char *)malloc(1);
Student *s1_p = (Student *)malloc( ??);

改进:使用sizeof配合malloc分配

定义:sizeof是测量类型或者变量长度的运算符

int num1 = sizeof(float);
int num2 = sizeof(char);
int num3 = sizeof(Student); float *f = (float *)malloc(sizeof(float));
char *c = (char *)malloc(sizeof(char));
Student *s1_p = (Student *)malloc(sizeof(Student));

3.2 使用free函数释放空间

函数原型:void free(void *p);

函数作用:释放指针变量p所指向的动态空间,使这部分空间可以被其他变量使用

float *f = (float *)malloc(sizeof(float));
char *c = (char *)malloc(sizeof(char));
Student *s1_p = (Student *)malloc(sizeof(Student));、
……//此处省略部分操作
free(f);
free(c);
free(s1_p);

复习笔记——1. C语言基础知识回顾的更多相关文章

  1. C语言程序设计做题笔记之C语言基础知识(下)

    C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的 ...

  2. C语言程序设计做题笔记之C语言基础知识(上)

    C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事.并且C是相当灵活的,用于执行计算机程序能完成的几乎 ...

  3. linux c 笔记-3 c语言基础知识

    关键字 数据类型: 简单(7):int long short float double char enum 复杂(2):struct union 类型修饰符(8):auto unsigned sign ...

  4. C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

    一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...

  5. C#学习笔记(基础知识回顾)之值传递和引用传递

    一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...

  6. C#学习笔记(基础知识回顾)之值类型和引用类型

    一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...

  7. ios开发学习笔记001-C语言基础知识

    先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...

  8. Java基础知识回顾(一):字符串小结

    Java的基础知识回顾之字符串 一.引言 很多人喜欢在前面加入赘述,事实上去技术网站找相关的内容的一般都应当已经对相应知识有一定了解,因此我不再过多赘述字符串到底是什么东西,在官网中已经写得很明确了, ...

  9. Java基础知识回顾之七 ----- 总结篇

    前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...

随机推荐

  1. 算法笔记4.2哈希 问题 A: 谁是你的潜在朋友

    题目描述 "臭味相投"--这是我们描述朋友时喜欢用的词汇.两个人是朋友通常意味着他们存在着许多共同的兴趣.然而作为一个宅男,你发现自己与他人相互了解的机会 并不太多.幸运的是,你意 ...

  2. 吴裕雄--天生自然 HADOOP大数据分布式处理:CenterOS 7 多台物理机、虚拟机相互桥连接ping通,并且能够成功连接外网

    选择用于桥接模式下的虚拟交换机,并且要选择对应的有线或者无线的网卡,如果主机是插网线联网的,那就选择有线网卡,如果主机是连无线网络的就选择无线网卡.Realtek PCIe GBE Family Co ...

  3. django框架基础-django redis-长期维护-20191220

    ###############   django框架-django redis    ############### # 学习django redis我能得到什么? # 1,项目中广泛使用到redis ...

  4. Tarjan模板——求强连通分量

    Tarjan求强连通分量的流程在这个博客讲的很清楚,再加上我也没理解透,这里就不写了. 缩点:将同一个连通块内的点视为同一个点. 扔一道模板题:codeVS2822爱在心中 第一问很显然就是求点数大于 ...

  5. 【数据结构】B树与B+树

    定义 B 树可以看作是对2-3查找树的一种扩展,即他允许每个节点有M-1个子节点. 根节点至少有两个子节点 每个节点有M-1个key,并且以升序排列 位于M-1和M key的子节点的值位于M-1 和M ...

  6. php防止post数据刷新重复刷新。后退 等重复提交?

    目前测试最好的办法:同步令牌(Token)机制来解决Web应用中重复提交的问题.还在研究中,稍后带来

  7. 一致性 hash 算法( consistent hashing )及java实现

    consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在cache 系统中应用越来越广泛: 1 基 ...

  8. 二评北科团委:“斩首计划”进行时,其用心也毒

    近日,在同学们和热心群众的共同努力下,各高校相继悬崖勒马,北大马会.北语新新青年.人大新光等进步社团均顺利注册.而北科团委倒行逆施,可谓一枝独秀,对于齐民学社的同学们的诉求,不仅不予以回应,反而采取表 ...

  9. JDBC源码分析(加载过程)

    public static void main(String[] args) {     String url = "jdbc:mysql://172.16.27.11:3306/jdbcT ...

  10. Torque:轻应用背后的大蓄势 微软语音技术厚积薄发​

    Torque,为中国用户而来 此前,"微软车库"公开发布了一系列小而美的产品,它们全部由具有"极客创新"精神的微软员工在工作之外的时间构思和开发.Torque就 ...