![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言基础
liaoxuming002
倒计时.............
展开
-
专题4-3.数组与指针分析(国嵌C语言视频)
1. 数组本质数组是一段连续的内存空间数组的空间大小为sizeof(array_type) * array_size数组名可看做指向数组第一个元素的常量指针 2. 指针的运算指针是一种特殊的变量,与整数的运算规则为p + n; (unsigned int)p + n*sizeof(*p);结论:当指针p指向一个同类型的数组的元素时:p+1将指向原创 2013-04-04 15:51:10 · 1236 阅读 · 0 评论 -
国嵌C语言教程 专题1代码
专题13-3#include #include int func(int n){ int i = 0; int ret = 0; int* p = (int*)malloc(sizeof(int) * n); do { if( NULL == p ) break;转载 2013-03-23 09:31:52 · 862 阅读 · 0 评论 -
goto,void,extern,sizeof分析
1. goto 要不要用?答: goto就像是偷情,有时候 很爽,但是偷的不好的, 自己的都会丢掉.用不用,你自己掂量着. a: 它破坏了结构化程序的顺序执行,容易隐藏bug, 利大于蔽. 如下面代码 #include void func(int n){ int* p = NULL; if( n < 0 )原创 2013-03-23 10:35:00 · 1078 阅读 · 0 评论 -
const和volatile分析.
1. const 修饰变量. a. 在C语言中CONST修饰的变量是只读的,其本质是还是变量. b. const修饰的变量会在内存占用空间. c. 本质上const只对编译器有用,在运行时无用. ====>>> const不是真的常量. 如下代码.#include#includeint main(){ const int cc =1; int *p原创 2013-03-23 23:27:18 · 544 阅读 · 0 评论 -
struct和union分析
1. 空结构体? C语言可以定义一个空结构体? 空结构体占用多大内存? O? C语言的灰色地带 ??? #include#includestruct _null{};int main(){ struct _null n1; struct _null n2; printf ("%d\n", sizeof(struct _null)); printf ("%d原创 2013-03-24 07:51:03 · 572 阅读 · 0 评论 -
7.enum和typedef分析
1. enum a:是一种自定义类型. b: 默认常量在前一个值的基础上依次加1 C;只能取定义时的离散量.#define与枚举类型的区别 a. #define宏常量只是简单的进行值替换, 枚举常量是真正意义上的常量 . b. #define 宏常量无法被调试, 枚举常量可以 C: #define宏常量无类型信息,枚举常量是一原创 2013-03-24 14:26:31 · 685 阅读 · 0 评论 -
C语言简单示例(文件读写4)
#include#define FILEPATH "D:\\test.txt"void main(int argc,char *argv[]){ FILE *fp; char str[11]; if((fp = fopen(FILEPATH,"rt")) == NULL) { printf("\nCannot open file strike any key exit!");原创 2013-04-28 17:13:42 · 572 阅读 · 0 评论 -
C语言简单示例(文件读写1)
#include#define FILEDIR "D:\\test1.txt"int main(){ FILE *fp; char ch='a'; if ( (fp =fopen(FILEDIR,"at+")) == NULL ) { printf("Cannot open file strke any key exit!"); getch(); exit(1); }原创 2013-04-28 16:19:43 · 707 阅读 · 0 评论 -
C语言简单示例(文件读写2)
#include#define FILEDIR "d:\\test.txt"void main(){ FILE *fp; char ch; if( (fp=fopen(FILEDIR,"rt")) == NULL) { printf("\nCannot open file strike any key exit!"); getch(); exit(1); } ch原创 2013-04-28 16:21:05 · 628 阅读 · 0 评论 -
C语言简单示例(文件读写7)
#includestruct stu{ char name[10]; int num; int age; char addr[15];}boya[2],boyb[2],*pp,*qq;#define FILEPATH "D:\\test.txt"void main(){ FILE *fp; char ch; int i; pp = boya; qq = boyb原创 2013-04-28 17:58:06 · 648 阅读 · 0 评论 -
C语言简单示例(文件读写3)
#includevoid main(int argc,char *argv[]){ FILE *fpRead, *fpWrite; char ch; if(argc == 1) { printf("have not enter file name strike any key exit"); getch(); exit(0); } if((fpRead = fope原创 2013-04-28 16:52:35 · 654 阅读 · 0 评论 -
C语言简单示例(文件读写5)
#include#define FILEPATH "D:\\test.txt"void main(int argc,char *argv[]){ FILE *fp; char ch,st[128]; if((fp = fopen("string","at+")) == NULL) { printf("Cannot open file strike any key exit!\n"原创 2013-04-28 17:20:43 · 602 阅读 · 0 评论 -
C语言简单示例(文件读写8)
#include main(){ FILE *fp; char filename[80]; long length; printf("输入文件名:"); gets(filename); //以二进制读文件方式打开文件 fp=fopen(filename,"rb"); if(fp==NULL) printf("file not foun转载 2013-04-28 19:24:21 · 681 阅读 · 0 评论 -
C语言简单示例(文件读写6)
#includestruct stu{ char name[10]; int num; int age; char addr[15];}boya[2],boyb[2],*pp,*qq;#define FILEPATH "D:\\test.txt"void main(){ FILE *fp; char ch; int i; pp = boya; qq = boyb原创 2013-04-28 17:49:08 · 585 阅读 · 0 评论 -
C语言简单示例(文件读写9)
以下代码来自小甲鱼#include#includevoid main(){ FILE *f_pic, *f_file, *f_finish; char ch; char pic_name[20],file_name[20],finish_name[20]; printf("请输入需要合成的图片和文件的名称:\n"); printf("图片: "); scanf("%s",原创 2013-04-29 21:08:51 · 692 阅读 · 0 评论 -
C语言简单示例(代码注释)
/* * sum9-2 - sumary how many digit from 1 to 100 * * Author: li ming * Creat Data: 2013-4-30 * Revision 1.1 * + debug printf */#include/* * count - conut how many digit原创 2013-04-30 10:16:04 · 2882 阅读 · 0 评论 -
auto,register,static
#include auto int m =0; //错误,auto只能修饰局部变量register int k=0;// 错误,register只能修改局部变量int main(){ auto int i = 0; register int j = 0; static int k = 0; printf("%0X\n",&i); print原创 2013-03-22 23:48:09 · 525 阅读 · 0 评论 -
C语言布尔变量
转自:http://www.cnblogs.com/pharen/archive/2012/02/06/2340257.html 在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。所以我们通常使用逻辑变量的做法://定义一个int类型变量,当变量值为0时表示false,值为1时表示trueint flag;flag = 0;//......转载 2013-03-23 08:59:54 · 2024 阅读 · 0 评论 -
C语言条件执行注意点
1. bool型变量应该直接出现于条件中,不要进行比较 bool b =TRUE; if(b) { } else { }2.普通变量和0 值比较时,0值 应该出现 在比较符号左边int i=1;if(0==i){}else{}3.float型变量不能直接进行0值 比较,需要定义精度#define EPSINON 0.00原创 2013-03-23 09:10:05 · 671 阅读 · 0 评论 -
专题4-7数组参数和指针参数分析(国嵌C语言视频)
1. 思考为什么C语言中的数组参数会退化为指针?退化的意义C语言中只会以值拷贝的方式传递参数当向函数传递数组时 将整个数组拷贝一份传入函数 将数组名看做常量指针传数组首元素地址C语言以高效为最初设计目标,在函数传递的时候如果拷贝整个数组执行效率将大大下降。二维数组参数二维数组参数同样存在退化的问题 二维数组可以看做是一维数组 二原创 2013-04-04 23:01:48 · 708 阅读 · 0 评论 -
专题4-8函数与指针分析(国嵌C语言视频)
1.函数类型 C语言中的函数有自己特定的类型 函数的类型由返回值,参数类型和参数个数共同决定例:int add(int i, int j)的类型为int(int, int) C语言中通过typedef为函数类型重命名typedef type name(parameter list) 例:typedef int f(int, int);typedef void原创 2013-04-05 00:17:56 · 680 阅读 · 0 评论 -
深入理解C语言指针的奥秘(转载)
深入理解C语言指针的奥秘指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int*ptr; (2)char*ptr; (3)int**pt转载 2013-04-05 09:05:28 · 654 阅读 · 0 评论 -
专题5-1.动态内存分配(国嵌C语言视频)
1.为什么使用动态内存分配 C语言中的一切操作都是基于内存的变量和数组都是内存的别名,如何分配这些内存由编译器在编译期间决定 定义数组的时候必须指定数组长度 而数组长度是在编译期就必须决定的需求:程序运行的过程中,可能需要使用一些额外的内存空间。malloc和free malloc和free用于执行动态内存分配和释放ma原创 2013-04-05 10:16:06 · 745 阅读 · 0 评论 -
专题4-6.多维数组和多维指针(国嵌C语言视频)
1.指向指针的指针指针变量在内存中会占用一定的空间可以定义指针来保存指针变量的地址值指向指针的指针为什么需要指向指针的指针? 指针在本质上也是变量 对于指针也同样存在传值调用与传址调用指针同样存在传值调用与传值调用的问题!#include #include int reset(char**p, int原创 2013-04-04 22:30:12 · 639 阅读 · 0 评论 -
专题4-4.C语言中的字符串(国嵌C语言视频)
1. C语言中的字符串 从概念上讲,C语言中没有字符串数据类型 在C语言中使用字符数组来模拟字符串 C语言中的字符串是以’\0’结束的字符数组 C语言中的字符串可以分配于栈空间,堆空间或者只读存储区#include #include int main(){ char s1[] = {'H', 'e', 'l', 'l', 'o'};原创 2013-04-04 17:09:48 · 1194 阅读 · 0 评论 -
专题4-5指针数组和数组指针分析(国嵌C语言视频)
1. 下面这些声明合法吗?问题:array代表数组首元素的地址,那么matrix代表什么?array和&array的地址值相同,但是意义不同,那么指向它们的指针类型相同吗? 答:二 C语言中的数组有自己特定的类型数组的类型由元素类型和数组大小共同决定例:int array[5]的类型为int[5]定义数组类型 C语言中通过ty原创 2013-04-04 20:51:21 · 797 阅读 · 0 评论 -
专题5-2.程序中的栈,堆,静态存储区(国嵌C语言视频)
1. 栈,堆,静态存储区.程序中的栈栈是现代计算机程序里最为重要的概念之一栈在程序中用于维护函数调用上下文,没有栈就没有函数,没有局部变量程序中的栈栈保存了一个函数调用所需的维护信息 函数参数,函数返回地址 局部变量 函数调用上下文程序中的堆为什么有了栈还需要堆? 栈上的数据在函数返回后就会被释放掉,无法传递到函数外原创 2013-04-05 10:38:37 · 801 阅读 · 0 评论 -
专题5-3.程序的内存布局(国嵌C语言视频)
1. 栈与堆要等到程序运行,由操作系统分配? 程序的内存布局各个段的作用 堆栈段在程序运行后才正式存在,是程序运行的基础 .bss段存放的是未初始化的全局变量和静态变量 .text段存放的是程序中的可执行代码 .data段保存的是那些已经初始化了的全局变量和静态变量 .rodata段存放程序中的常量值,如字符串常量原创 2013-04-05 11:07:30 · 1061 阅读 · 0 评论 -
专题6-1.认清函数的真面目(国嵌C语言视频)
1. C语言中的函数函数的由来程序= 数据+ 算法C程序= 数据+ 函数函数的意义模块化程序设计难以解决的复杂问题复杂问题1 复杂问题2简单问题1 简单问题2 简单问题1 简单问题2面向过程的程序设计面向过程是一种以过程为中心的编程思想首先将复杂的问题分解为一个个容易解决的问题分解过后的问题可以按照步骤一步步完成原创 2013-04-05 15:49:31 · 1363 阅读 · 0 评论 -
专题6-2,可变参数列表与宏分析(国嵌C语言视频)
1. 问 如何编写一个可以计算n个数平均值的函数?答;#include float func(int array[], int size){ int i = 0; float avr = 0; for(i=0; i<size; i++) { avr += array[i]; } return avr原创 2013-04-05 16:20:52 · 728 阅读 · 0 评论 -
专题6-3.函数调用行为, 递归函数(国嵌C语言视频)
1. 活动记录活动记录是函数调用时用于记录一系列相关信息的记录 临时变量域:用来存放临时变量的值,如k++的中间结果 局部变量域:用来存放函数本次执行中的局部变量 机器状态域:用来保存调用函数之前有关机器状态的信息,包括各种寄存器的当前值和返回地址等; 实参数域:用于存放函数的实参信息 返回值域:为调用者函数存放返回值参数入栈既然函数参数的计算次序原创 2013-04-05 16:51:50 · 789 阅读 · 0 评论 -
专题7 三个程序(国嵌C语言视频)
1. #includeint main(){ char* p = "hello world!"; int a = (int)p; short s = 'c'; printf("%c\n", (long)(*((int*)p))); printf("%c\n", (long long)(*(((long long*)p)+1))); print原创 2013-04-05 17:39:14 · 1212 阅读 · 0 评论 -
专题5-4.野指针和内存操作分析(国嵌C语言视频)
1.初识野指针野指针通常是因为指针变量中保存的值不是一个合法的内存地址而造成的野指针不是NULL指针,是指向不可用内存的指针 NULL指针不容易用错,因为if语句很好判断一个指针是不是NULL野指针的由来 局部指针变量没有被初始化 #include #include struct Student{ char* name; i原创 2013-04-05 11:42:18 · 682 阅读 · 0 评论 -
基本数据类型分析
#include "stdafx.h"int main(int argc, char* argv[]){ char c = 0; short s = 0; int i = 0; printf("%d, %d\n", sizeof(char), sizeof(c)); printf("%d, %d\n", sizeof(short原创 2013-03-22 23:32:22 · 537 阅读 · 0 评论 -
C语言简单示例(宏定义一应用)
以下代码来自播布客视频,亚嵌李明老师课程.#include#if 0void swap(int a, int b){ char tmp; tmp = b; b = a; a = tmp;}#endif#define SWAP(a, b) \do{ \ cha原创 2013-04-30 13:31:22 · 973 阅读 · 0 评论