复习笔记——1. C语言基础知识回顾
一、数据类型
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语言基础知识回顾的更多相关文章
- C语言程序设计做题笔记之C语言基础知识(下)
C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的 ...
- C语言程序设计做题笔记之C语言基础知识(上)
C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事.并且C是相当灵活的,用于执行计算机程序能完成的几乎 ...
- linux c 笔记-3 c语言基础知识
关键字 数据类型: 简单(7):int long short float double char enum 复杂(2):struct union 类型修饰符(8):auto unsigned sign ...
- C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)
一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...
- C#学习笔记(基础知识回顾)之值传递和引用传递
一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...
- C#学习笔记(基础知识回顾)之值类型和引用类型
一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...
- ios开发学习笔记001-C语言基础知识
先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...
- Java基础知识回顾(一):字符串小结
Java的基础知识回顾之字符串 一.引言 很多人喜欢在前面加入赘述,事实上去技术网站找相关的内容的一般都应当已经对相应知识有一定了解,因此我不再过多赘述字符串到底是什么东西,在官网中已经写得很明确了, ...
- Java基础知识回顾之七 ----- 总结篇
前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...
随机推荐
- webpack4的迁移
引用于https://www.jianshu.com/p/7ae252f27f09 感觉是突然之间,webpack4的消息就满天飞了,听说打包速度提高了很多,还有最大的噱头是实现了零配置,leader ...
- php中级程序员的进化标准
1 熟悉linux/unix操作系统,能够写些shell脚本2 能够搭建lamp环境3 熟练使用php,了解或使用过php扩展模块,使用过开源的php框架4 熟悉缓存技术,包括http协议的缓存,利用 ...
- 吴裕雄 python 神经网络——TensorFlow 卷积神经网络手写数字图片识别
import os import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data INPUT_N ...
- python后端面试第二部分:网络编程和并发编程--长期维护
1. 简述 OSI 七层协议. 2. 什么是C/S和B/S架构? 3. 简述 三次握手.四次挥手的流程. 4. 什么是arp协议? 5. TCP和UDP的区别? 6. 什么是局域网和广域网? 7. 为 ...
- Ribosome profiling|N-terminomics|蛋白质基因组学
生物医学大数据-蛋白质基因组学:质谱注释 蛋白质组与其他组学的关系便是互为印证:蛋白质基因组学原本用于基因组注释,后面扩展到蛋白质与转录组或可变剪接之间关系,同时,蛋白质组依赖于基因组注释作为验证.许 ...
- 【Java集合】试读ArrayList源码
ArrayList简介 ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAccess, ...
- mysql索引的面试题
相信很多人对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构. 因为索引是MySQL中比较重点的知识,相信很多人都有一定的了解,尤其是在面试中出现的频率特别高.楼主 ...
- 3DMAX 卸载工具,完美彻底卸载清除干净3dmax各种残留注册表和文件
一些同学安装3dmax出错了,也有时候想重新安装3dmax的时候会出现这种本电脑windows系统已安装3dmax,你要是不留意直接安装,只会安装3dmax的附件,3dmax是不会安装上的.这种原因呢 ...
- linux上hosts文件如何配置
linux上hosts文件如何配置 一.什么是host Hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登 ...
- ionic2踩坑之ionic resources失败
网上关于ionic2怎么修改应用图标和启动画面资料也挺多的.不过大家执行ionic resources的时候不少人都执行失败了,关于执行失败的原因网上很少.下面分享一下我的经验吧. 1.看自己的项目下 ...