一、数据类型

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. 跨域问题与SpringBoot解决方案

    什么是跨域? 定义:浏览器从一个域名的网页取请求另一个域名下的东西.通俗点说,浏览器直接从A域访问B域中的资源是不被允许的,如果想要访问,就需要进行一步操作,这操作就叫"跨域".例 ...

  2. 忘记mysql root用户密码的解决办法(skip-grant-tables)

    skip-grant-tables顾名思义,数据库启动的时候 跳跃权限表的限制,不用验证密码,直接登录. 注意: 这种情况只有在忘记root密码 不得已重启数据库的情况下使用的.现网环境慎用,需要重启 ...

  3. form提供的两种数据传输方式 get和post method=”post“和method=”get”

    虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响.虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一些差异,但是了解二者的差异在以后的编程也会很有帮助的. ...

  4. idea 创建项目没有web.xml文件,如何添加

    1.首先看下项目工程里面是否有WEB-INF文件夹,没有就创建一个 2.点击 file 选择 project structure 3.选择 facets,点击+号, 选择 web 4.弹出 弹框 选择 ...

  5. 一:MYsql登录,服务开启和停止

    字段的属性: 1:名称 2:数据类型 3:长度 4:约束 SQL的分类:(结构化查询语言) 1:数据查询语言DQL    select 2:数据操纵语言DML    insert  delete  u ...

  6. Zabbix - 修改默认的 Web 访问URL

    背景 CentOS 7 64 Zabbix 4 LTS 使用RPM在线方式安装 修改过程 # 修改默认的访问路径:http://x.x.x.x/zabbix 修改为 http://x.x.x.x/ v ...

  7. ospf实验

    以上是实验要求和实验拓扑 R1到R5的ip自己配置了 1. #int loopback 0 #IP add 1.1.1.1 24 2.基本命令R5例: #ospf 1 router-id 5.5.5. ...

  8. CF-552E-Two Teams

    pro:给出n, k和长度为n的数组a, 两个人轮流取数1先取,设a[i]是当前数组中最大值,则取走a[i - k]到a[i + k]这段数,然后把a[i + k + 1]和后面的补到 a[i - k ...

  9. android翻译应用、地图轨迹、视频广告、React Native知乎日报、网络请求框架等源码

    Android精选源码 android实现高德地图轨迹效果源码 使用React Native(Android和iOS)实现的 知乎日报效果源码 一款整合百度翻译api跟有道翻译api的翻译君 RxEa ...

  10. RNA sequence单分子直测技术

    生命组学 按照功能分类遗传物质,可能的分类有系统流.操作流.平衡流等等.下面是使用该理论解释DNA与RNA的关系: DNA和RNA有很大不同,DNA存储遗传信息,作为生命活动的最内核物质,如同操作系统 ...