C语言
文章平均质量分 78
走慢一点点
这个作者很懒,什么都没留下…
展开
-
C——内存管理总结
作用域1.1 auto 自动变量 一般情况下代码块内部定义的变量都是自动变量(栈变量)。当然也可以显示的使用auto关键字。1.2 register 寄存器变量 register int i; 把变量放到CPU的寄存器里面,代码执行效率会更高,但取不到变量的地址(&i会出错)。1.3 extern 关键字 extern修饰全局变量glo_var时,表明glo_var可以被其他模块的函数使用。原创 2015-05-27 12:34:30 · 652 阅读 · 0 评论 -
C——联合体(共同体)总结
联合体的特点1、联合体是一种结构,在这个结构中可以不同类型的成员,但同一时间只能存放其中的一种。#include union Demo{ int a; char b; long long c;};int main(){ union Demo demo; demo.a = 10; printf("a=%d\n", demo.a); printf("b=%d\n"原创 2015-06-06 22:00:25 · 2763 阅读 · 0 评论 -
C——指针总结
指针1.1 指针概念指针也是一个变量,做为指针变量的值是另一个变量的地址。指针存放的内容是一个地址,该地址指向一块内存空间1.2 指针变量的定义可以定义一个指向一个变量的指针变量。int *p;//表示定义一个指针变量。*p;//代表指针所指内存的实际数据切记,指针变量只能存放地址,不能将一个int型变量直接赋值给一个指针。int *p = 10转载 2015-05-24 22:12:47 · 778 阅读 · 0 评论 -
C提高——数组、数组数据类型、数组数据类型指针、多维数组本质等
数组int main() { int a[200] = { 0 }; printf("a=%d\n", a); printf("&a=%d\n", &a); printf("a+1=%d\n", a+1); printf("&a+1=%d\n", &a+1); system("pause");}对于一维数组,C语言规定: a代表数组首元素的地址 &原创 2016-03-08 23:26:59 · 864 阅读 · 0 评论 -
C提高——结构体
结构体类型// 定义一个结构体数据类型,没有分配内存空间//struct Teacher//{// char name[64];// int age;// int id;//};typedef struct Teacher{ char name[64]; int age; int id;} Teacher;int main() { //struc原创 2016-03-24 23:31:13 · 411 阅读 · 0 评论 -
C提高——const专题
const 修饰变量例如:const int a = 0;int main() { // int const a = 0;// 和下面的写法意思是一样的 const int a = 0; //a = 10; // 报错 int *p = &a; *p = 10; printf("a=%d\n", a); system("pause");}a=1原创 2016-03-27 18:35:10 · 469 阅读 · 0 评论 -
C——提高(2)字符串一级指针、二级指针内存模型
字符串一级指针C语言里没有实质的字符串类型,通过字符数组来模拟。 C语言的字符串是以0结尾的字符串。 C语言字符串的内存分配 可以分配在堆上、栈上、全局区上。1、字符串一级指针内存模型buf数组与指针的区别:注意: char buf[20] = “aaaa”; 字符串数组的初始化步骤是,先在常量区创建字符常量“aaaa”,再从字符常量区拷贝字符到堆区(临时区)。2、字符串copy函数的经典实现原创 2015-12-16 22:39:55 · 2531 阅读 · 0 评论 -
C——指针与内存四区提高(1)
一、数组做函数参数退化问题#include <stdio.h>//void printfArr(int a[6], int num){//void printfArr(int a[], int num){void printfArr(int *a, int num){// 三种写法结果是一样的 int i; int num2 = 0; num2 = sizeof(a) /原创 2015-12-01 23:10:01 · 884 阅读 · 0 评论