c语言基础知识入门笔记,复习笔记——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);

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.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...

随机推荐

Visual Studio 2010配置OpenGL-1.8

参考博客 : 安装参考 1. http://blog.csdn.net/mooncircle/article/details/5545448 2. http://www.cnblogs.com/moo ...

HTML5和css3的总结二

继续接着昨天的整理 [倒影]:用的不是很多 -webkit-box-reflect:below 20px -webkit-linear-gradient(rgba(0,0,0,0,),rgba(0,0 ...

hdu-5681 zxa and wifi(dp)

题目链接: zxa and wifi Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Othe ...

java的四舍五入算法

粗力度的四舍五入为整数 package math; public class MathRoundTest { /** * Math类中提供了三个与取整有关的方法:ceil,floor,round, * ...

Elastarchsearch安装搭建(一)

Elasticsearch是一个实时分布式搜索和分析引擎.一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全 ...

c# 反射得到实体类的字段名称和值,DataTable转List<;T>;

/// /// 反射得到实体类的字段名称和值 /// var dict = GetProperties(model); /// /// ...

Python [习题] 字典排序

[习题] 对此字典分别按照value 和key 如何排序? dic1 = {'and':40, 'a':54, 'is':60, 'path':139, 'the':124, 'os':49} In ...

11G新特性 -- OLTP Table Compression

之前的版本中,只能在批量加载操作时,比如direct load.create table as select 操作,才能压缩数据.在dml操作期间是无法压缩数据的. 在11g中,oracle将表压缩扩 ...

深入分析AIDL原理

深入分析AIDL原理 分类: Android2011-11-18 17:29 6522人阅读 评论(1) 收藏 举报 descriptorcallbackservicenullinterfaceser ...

pyhton学习,day1作业,用户名密码登录模块

要求,通过用户名密码登录,登录错误3次,锁定用户名 # coding=utf-8 # Author: RyAn Bi import os, sys #调用系统自己的库 accounts_file = ...

你可能感兴趣的:(c语言基础知识入门笔记)