![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言基础
文章平均质量分 50
lsdmx2016
这个作者很懒,什么都没留下…
展开
-
关于段错误
1.测试环境:gcc 4.4 2.如果程序访问无法访问的内存地址,或者说不存在的内存地址,就会报 Segmentation fault 如下面的语句 char* p="123";// p说存储的地址不确定,有可能无法写数据。 scanf("%s",p); 就会产生段错误。 比如说数组越界访问(地址有可能不存在) 比如说将整数作为原创 2012-12-05 15:14:38 · 574 阅读 · 0 评论 -
对const 的认识
1.Const 指是用来修饰变量,它放在类型前和类型后效果是一样的。 eg const int a;// int const a 等效,a 无法修改 2.Const 和指针 1. const int *a;// *a 不可变,a可变(a是指针变量,*a就是地址为a的值的存储空间的值) 2. const int *const a;// *a不可变,a 也不可变 3. con原创 2013-01-15 16:16:28 · 364 阅读 · 0 评论 -
C 语言程序的存储区域
1.C 语言程序的运行有如下几个阶段 编译 汇编 链接 运行 2.程序文件在调入内存后,经历编译-汇编-链接后会形成一个文件,这个文件有如下几个部分: 代码段: 保存机器码的存储区域 只读数据段: 保存不会被更改的数据的存储区域,如const char str[]="abc"; 只读外部变量,const char str[]="d原创 2013-01-15 14:11:15 · 557 阅读 · 0 评论 -
变量的存储类型
1.对变量的理解。 变量与内存中一片存储区域相对应,变量的地址就是这片存储区域的首字节的地址。编译器将变量名和变量的内存地址对应起来。变量的值就是变量在内存中保存的数据。2.变量的声明和定义 声明只是告诉编译器有这样一个变量。定义,将为这个变量分配存储空间,一个变量可能被声明多次,但只会被定义一次。变量的第一次赋值被称为初始化。3.对变量的作用域的理解。 变量能够被访问原创 2013-01-14 22:57:03 · 554 阅读 · 0 评论 -
变量初始化
变量的初始化是指变量被分配存储空间后的第一次赋值1.变量自动初始化。 对于外部变量和静态变量(内部链接的),会自动初始化默认值(int 0,char \o). 对于自动变量,不会自动初始化成默认值。#include struct student{char name[30];int age;};void fun1(){int d;printf("原创 2013-01-15 11:08:22 · 743 阅读 · 0 评论 -
C 语言变量的声明和定义
1.变量的声明:告诉编译器有这样一个变量或者说标识符,基本模式就是:数据类型 变量名2.变量的定义: 编译器为这个变量在内存中分配空间,编译器将变量名和所分配的内存空间的地址一一对应。3. 一般而言,变量在声明的同时,就定义了。如int a;// 为a 分配4个字节的空间4. 没有定义的声明: extern int a;// a 定义在别的地方。原创 2013-01-14 17:55:45 · 559 阅读 · 0 评论 -
对extern 关键字的认识
1.C 语言中的extern 关键字 extern 是用于表示变量存储类型的关键字。 在C语言中extern 中用于声明静态变量、外部变量和函数,这个变量和函数有可能在本文件(模块)定义,也有可能在其他文件(模块)定义。它告诉编译器变量和函数的定义在其他地方(本文件或者其他文件、库),一般情况而言表示外部变量或者函数定义在其他文件。对于外部变量或者函数,一般在它的头文件中对它进行ext原创 2013-01-14 16:06:45 · 463 阅读 · 0 评论 -
main 函数的写法
C99 文档 Program startupThe called at program startup is named main.The implementation declares noprototype for this .It shall be defined with a return type of int and with noparameters:原创 2013-01-11 09:12:44 · 613 阅读 · 0 评论 -
函数指针和指针函数
1.指针函数,是指返回值为指针的函数,所以本质上是一个函数,所以要么是一个函数的声明,要么是一个函数的定义。函数名是一个指针变量,函数名这个变量的值为函数代码块在内存中的首地址。 eg. int *fun(int x,int y){};//fun 是一个函数,它的返回值是int*.2.函数指针 ,是一个保存函数代码块首地址的指针,是一个指针变量。也就是说函数指针指向函数的入口地址。原创 2013-01-10 17:18:19 · 426 阅读 · 0 评论 -
C语言文件的常用操作
1.getchar 和getc 的区别 getchar 对应的输入设备是键盘。 getc 对应的输入设备是某个文件指针 getchar() getc(FILE* fp)// 从文件字节流中读取一个字符2.gets和fgets gets 从标准输入设备(键盘)中读取一个字符串,遇到换行结束,换行符结束,并在末尾添加 "\0". fgets 从文件字节流中读取一原创 2012-12-06 15:00:54 · 690 阅读 · 0 评论 -
文本文件和二进制文件
C语言中所描述的文件,可以理解为字节流,都是一串"01“(计算机只能识别01)。文件类型有文本文件和二进制文件之分,事实上文件都是一串01,但是文本文件这些01 都能够对应到根据某种字符编码方式翻译的字符(如ASCII码,UTF-8等),二进制文件都是一些0101,这些0101没有与某种特定的字符编码方式相关联,但是也是有一定的翻译规则,这个规则,由具体的文件来决定(如图形文件,音频文件等),比如原创 2012-12-06 14:02:02 · 610 阅读 · 0 评论 -
典型的段错误
#include #include void f1(int *p);int main(void){ int *p1; f1(p1); *p1=4;}void f1(int *p){ p=malloc(sizeof(int));}f1中的指针是局部变量,在f1 执行完毕以后,p 就被回收了,是一个不存在的指针了,虽然malloc 所分配的内原创 2013-03-31 14:37:44 · 607 阅读 · 0 评论