基础学习第一弹
来源:互联网 发布:c语言 购物款 编辑:程序博客网 时间:2024/05/16 03:37
10-24学习总结
- C语言关键知识复习
知识总览
- 基础知识:预处理,数据类型,运算符和表达式,控制流,函数及变量,数组,指针,结构、联合、枚举
- 数据结构和算法:线性表,链表,串,树,图,查找算法,排序算法…
- 库函数:< malloc.c> < string.h>< ctype.h> < stdlib.h>< stdio.h>< assert.h>< math.h>…
C语言的一些重要知识
内存存储
- 栈:编译期间就能确定存储大小的变量的存储区,用于在函数作用域内创建、在离开作用域后自动销毁的变量的存储区。通常是局部变量、函数参数等的存储区。它的存储空间是连续的,两个紧接着定义的局部变量,存储空间也是紧挨着的。栈的大小是有限制的,不要定义超大数组(VC++默认栈大小是1M)。
- 堆:通常用于那些在编译期间不能确定存储大小的变量的存储区,它的存储空间是不连续的,一般由malloc(或new)函数来分配内存块,并且需要free(或delete)释放内存。如果没有释放,会发生内存泄漏。两个紧接定义的指针变量,内存块不一定紧挨着。堆的大小一般没有限制。
- 全局/静态存储区:跟“栈”差不多,但是是针对全局变量和静态变量的。
- 常量存储区:全局可见,不可被修改。
函数
- 函数的参数:传值(传指针)和传址(传引用)
- 函数的返回值:传值和传址
常量和指针
- 常量指针:指向的内容不可修改,但可以指向不同地址
- 指针常量:指向的内容可以修改,但不可修改指向的地址
临时对象
不可见(函数参数类型的隐式转换;函数返回对象)函数返回对象会产生临时对象,会伴随一定的构造和销毁成本,影响效率。很多时候,采取传指针的方式取返回值
数据类型
不要忽略,不要超出范围。
一个简单的例子分析
#include "stdafx.h"main(int argc,char* argc[]){ printf("hello world!\n"); return 0;}
预处理
- 常将一些经常引用而不会修改的标准头文件放在stdafx.h中。
- 文件包含:#include<>或#include ” “
- 宏替换:#define,定义符号常量、函数功能、重新命名、字符串的拼接等
- 条件编译:#if、#ifndef、#ifdef、#endif、#undef等
- 布局控制:#pragma,为编译程序提供非常规的控制流信息。
(1)#pragma warning(disable:XXX)例如prama warning(disable:4871)就是在程序编译时不显示4871警告信息。
(2)#pragma comment(…):将一个注释记录放入一个对象文件或者可执行文件中。常用的lib关键字可以用于链接一个库文件,比如#pragma comment(lib,“user32.lib”)指令来将user32.lib库文件加入到工程中。
(3)#pragma once :保证头文件只被编译一次。
_MSC_VER:MSC是微软的c编译器,VER是版本
控制台
控制台程序跟DOS程序是不一样的。
调试
学会设置断点
VC有个Call Stack窗口,查看更多程序流程细节。- 杂项
main(int argc,char* argv[])中,argc,argv 的作用传参。
特殊字符常量等。。。
阅读全文
0 0
- 基础学习第一弹
- 深度学习零基础进阶第一弹
- LINUX基础学习-第一课
- java学习基础第一讲
- 学习Python 第一弹——基础函数汇总
- XSL:XSL基础学习第一部分
- 学习《C++ Templates 中文版》第一部分 基础
- jqGrid基础学习:2第一个jqGrid
- 传智播客 学习C#基础第一课
- PHP基础学习第一讲(基本知识)
- [swift 学习]第一课 ---基础语法
- java基础学习系列---第一课
- jsp基础学习---第一个Hello World
- javascript学习笔记--第一课:基础
- Java基础第一课dos命令学习
- Java基础-练习第一弹
- jQuery基础入门第一弹
- python基础讲义第一弹
- 简单实用的 PHP、数组,对象 互转
- Java IO流详解
- 利用spring打印hibernate执行的sql
- 哈达马积&克罗内克积
- C# 调用WebApi2
- 基础学习第一弹
- 算法爱好者——K个最近的点 ? 待解决
- pom文件总结
- java二维码生成-谷歌(Google.zxing)开源二维码生成的实例及介绍
- patch -p0 和patch -p1的区别 patch 用法
- MATLAB自定义colorbar
- phpcms PC标签调用说明
- Spring_day01
- Python爬取豆瓣图书信息学习记录