中国大学MOOC_C语言程序设计(翁恺)笔记
来源:互联网 发布:网站关键字优化工具 编辑:程序博客网 时间:2024/05/10 04:12
#include
int main(){
}
return result;
}
{
return 0;
}
★使用和遍历
数组名本身就是指针:int a[10];int *p=a; //无需用&取地址
但是数组的单元表达的是变量,需要用&取地址:a==&a[0]
实际上其中方括号[],可以看作运算符,它可以对数组做,那么也可以对指针做:p[0]<==>a[0]
数组变量是const的指针,所以不能被赋值:int a[]<==>int *const a
9.2指针运算
9.2.1指针运算
指针+1,实际上是加上一个sizeof(type),减1也是类似的
*p++,就是*(p++),即取出p所指的那个数据,完成后把p向后推一个sizeof(type);常用于数组类的连续地址操作
0地址:通常用于存放一些重要内容,编程是一般应避免;NULL常数即代表0地址
9.2.2动态内存分配
//通过指针和malloc函数,可以动态初始化数组的大小
#include
int i,number,*a;
scanf("%d",&number);
a=(int*)malloc(number*sizeof(int)); //向系统申请一定number的整型空间内存块,并返回指向这个内存块的指针,并将指针转换为整型
for (i=o;i
}
//放入使用数组的代码
free(a);//用完以后要释放a
return(0);
10.1 字符串
字符串以\0结尾
char s[]={'H','e','l','l','l','o','\0'};
char s[]="Hello";
scanf("%s",string); //读入一个单词,到空格、Tab、回车为止
printf("%s",string);
10.2 字符串函数
getchar()
putchar(<字符变量>)
#include "string.h"
strlen(<字符串变量>)
strcmp(<字符串变量1>,(<字符串变量2>)
strcpy(<目标字符串变量>,(<源字符串变量>)
strcat(<目标字符串变量>,(<源字符串变量>)
strchr(<字符串变量>,<字符>)
strstr
11.1 枚举
11.2 结构体
★定义:
struct [<结构体名>] {
<结构体声明>
}<结构体变量列表>;
和数组不同的,结构体的成员可以是不同类型的
★赋值:
struct date {
};
struct date today={07,31,2014};
struct date thismonth={.month=7,.year=2014};
★运算:
与数组不同的是,结构体之间可以赋值运算
<结构体变量1>=<结构体变量2>
此外,结构体变量名并不是它的地址
11.3 联合
12.1 全局变量
定义在函数体内的变量叫局部变量(本地变量);定义在函数体外的变量叫全局变量(外部变量)。局部变量的生存周期和作用域是一致的,即在函数体内部。
局部变量不会自动初始化,但全局变量未初始化的整型会得到0值,指针变量默认初值NULL
若有局部变量和全局变量重名,则全局变量将被隐藏。(小范围变量覆盖大范围变量)
12.1-2 静态本地变量
static
用来保存离开函数后的局部变量
静态本地变量本质上是一种特殊的全局变量,具有全局生存期、本地作用域。
12.2 编译预处理和宏
12.2-1 宏定义
编译预处理(把include后面的文件内容原封不动地放在代码处)
#include “studio.h"
定义宏,用来字符替换。宏定义超过一行时,可用反斜杠\作续行符
#define PI 3.1415
一些预定义宏
__LINE__
__FILE__
__DATE__
__TIME__
__STDC__
__func__
12.2-2 带参数的宏
一切都要有括号(整个值要括号、参数出现的每个地方都要有括号)
例如 #define RADTODEG(x) ((x)*57.29578)
部分宏可以用inline函数代替
12.3 大程序结构
12.3-1 多个源代码文件
新建一个项目,将几个源代码文件添加到这个项目
12.3-2 头文件
函数原型可以单独放在一个头文件中(并添加到同一个项目)
同样可以把全局变量的声明放在这个头文件中,但注意全局变量声明前面要补全external
除了函数原型、变量声明外,还可以防在头文件里的有结构体声明、枚举声明、另一个宏声明等
为避免inclue多个头文件时产生重复声明,所以标准头文件结构中用ifndef来加以避免,如下
#ifndef __M_HEAD__
#define __M_HEAD__
[宏定义体]
#endif
13.1 文件
文本文件的操作
FILE *fp=fopen("file","r");
//r
//r+ 从头开始读写
//w
//w+ 打开读写,若文件不存在则新建,若存在则清空
//a
//..x 上述修饰符后加x表示只新建,若文件已存在则不能打开
if (fp) {
}
else {
}
13.2 位运算
★& 位与
逻辑运算相当于把所有非0值都变成1,然后做按位运算
★^ 位异或
★<< 左移
所有小于int的类型,以为以int方式来做,结果是int;对于unsigned的类型,左边填入0;对于signed的类型,左边填入原来的最高位(即保持符号位不变)
x>>=1 等价于x/=2
x>>=n 等价于x/=2n
- 中国大学MOOC_C语言程序设计(翁恺)笔记
- 中国大学MOOC-翁恺-C语言程序设计习题集(学习笔记)
- PAT|中国大学MOOC-翁恺-C语言程序设计习题集01-04
- PAT|中国大学MOOC-翁恺-C语言程序设计习题集05-08
- PAT|中国大学MOOC-翁恺-C语言程序设计习题集09-12
- PAT|中国大学MOOC-翁恺-C语言程序设计习题集13-16
- PAT|中国大学MOOC-翁恺-C语言程序设计习题集17-20
- PAT|中国大学MOOC-翁恺-C语言程序设计习题集21-24
- PAT|中国大学MOOC-翁恺-C语言程序设计习题集25-28
- PAT|中国大学MOOC-翁恺-C语言程序设计习题集29-32
- PAT|中国大学MOOC-翁恺-C语言程序设计习题集33-36
- PAT|中国大学MOOC-翁恺-C语言程序设计习题集37-38
- 中国大学MOOC-翁恺-C语言程序设计习题集-解答汇总
- 中国大学MOOC-翁恺-C语言程序设计习题集 题目号02-3 Source code
- 中国大学MOOC-翁恺-C语言程序设计习题集 题目号02-4 Source code
- 中国大学MOOC-翁恺-C语言程序设计习题集 题目号03-0 Source code
- 中国大学MOOC-翁恺-C语言程序设计习题集 题目号03-1 Source code
- 中国大学MOOC-翁恺-C语言程序设计习题集 02-0 到 04-4
- STM32F103 5个串口同时使用
- SmartTemplate学习笔记
- WebServices 简介
- POJ 1852 蚂蚁
- js图片左右无缝滚动
- 中国大学MOOC_C语言程序设计(翁恺)笔记
- msp430硬件II2C
- Memcached教程(1)
- mac下安装php扩展phpredis
- Flex 布局教程:实例篇
- Educational Codeforces Round 15 D. Road to Post Office (数学)
- bzoj 1057:棋盘制作(悬线法)
- Android开发之Android内存管理原理
- 滚动条滑到底部进行刷新