E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
【C语言学习笔记】
C语言学习笔记
-------伊能
C语言学习笔记
------静态函数初步
/*我们知道一个大的程序不可能把所有的函数都写在一个文件里,而是要书写多个文件,那么问题来了,在另一个文件中的函数,这个文件然后调用呢??这就是:函数的跨文件调用问题!C语言规定,所有的函数,在没有static保护的情况下,都可以跨文件调用!C语言为什么要引出外部函数和内部函数机制???他们是为了解决什么问题而提出的???他们各有什么特点???像全局变量一样,如何解决由于C语言允许的跨文件调用函数
OneCode2World
·
2015-12-27 14:31
C语言学习笔记
C语言学习笔记
----------伊能
C语言学习笔记
-------静态局部变量
/*用static声明一个变量的作用是:1.对局部变量用static声明,把它分配在静态存储区,该变量在整个程序执行期间不释放,其所分配的空间始终存在。常使用静态局部变量在函数调用间歇保存某些变量的值。2.对全局变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)*/#include#includevoidgo(){for(inti=0;i<10;i++){intnum=0
OneCode2World
·
2015-12-27 11:10
C语言学习笔记
C语言学习笔记
--------伊能
C语言学习笔记
------C语言结构体字节对齐机制
/*结构体的成员存储时为什么要对齐???什么是对齐???对齐有什么意义???结构体对齐的意义是什么???C语言为什么要引入结构体字节对齐机制???下面是一些概述:一般来说,不同的编译器字节对齐机制有所不同,但是有以下3条通用准则:1.结构体变量的大小能够被其最宽基本类型成员的大小所整除;2.结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上
OneCode2World
·
2015-12-24 13:16
C语言学习笔记
我的
C语言学习笔记
第一个C语言程序:1.#include是C语言的预处理指令,所谓预处理指令就是在编译之前作得处理,通常以#开头2.预处理指令后面会跟着一个文件名,预处理器发现预处理指令之后,就会根据文件名去查找文件,并把这个文件的内容包含到当前文件中。(将文件内容完全拷贝到#include指令所在的位置)3如果被包含的文件的扩展名是.h文件,我们称之为头文件(HeaderFile)头文件可以用来声明函数。4系统自
追风筝的蝙蝠侠
·
2015-12-16 17:09
C语言学习笔记
(六)字符串
C语言学习笔记
(六)字符串我们都知道C语言中没有字符串这种数据类型,不像Java直接有一个String类,String类提供了很多方法,可以满足我们的所有操作。那C语言中的字符串是怎么表示的呢?
u010994304
·
2015-12-15 17:00
字符串
C语言
指针
C语言学习笔记
之void
Ø 1、void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。Ø 2、用法1:数据类型的封装 int InitHardEnv(void **handle); 典型的如内存操作函数memcpy和memset的函数原型分别为void * memcpy(void *dest, const void *src, size_t len);void
u010994304
·
2015-12-14 16:00
C语言学习笔记
(17) 数组和指针分析
摘要:总结了数组的本质,通过实例阐述了a+1和&a+1的区别,指针的关系,比较运算,指出为什么只能进行相减运算及其意义,解释了数组与下标运算的优劣,解析了一道面试题,说明了数组和指针作为函数参数的时候需要注意的地方,最后总结了数组和指针的一些差别。一、数组的本质数组是一段连续的内存空间,数组名指向数组首元素的地址。数组占用的空间的大小为sizeof(array_type)*arrsy_size,比
漫步的风暴
·
2015-11-19 16:55
C
C语言学习笔记
(17) 数组和指针分析
摘要:总结了数组的本质,通过实例阐述了a+1和&a+1的区别,指针的关系,比较运算,指出为什么只能进行相减运算及其意义,解释了数组与下标运算的优劣,解析了一道面试题,说明了数组和指针作为函数参数的时候需要注意的地方,最后总结了数组和指针的一些差别。一、数组的本质数组是一段连续的内存空间,数组名指向数组首元素的地址。数组占用的空间的大小为sizeof(array_type)*arrsy_size,比
漫步的风暴
·
2015-11-19 16:55
C
C语言学习笔记
(16) c语言字符串分析
摘要:总结了字符串的概念,字符串长度的计算方法,尝试实现了strlen和strcpy函数,最后介绍了受限和不受限的字符串函数。一、字符串的概念1.从概念上讲,c语言中并没有字符串这一类型,它使用字符数组末尾加’\0’来模拟字符串。2.C语言中的字符串是以’\0’结尾的字符数组。3.C语言中的字符串可以分配于栈空间,堆空间或者只读存储区。这里的字符串分配于栈空间,堆空间或者只读存储区,是因为我们创建
漫步的风暴
·
2015-11-16 12:09
C
C语言学习笔记
(16) c语言字符串分析
摘要:总结了字符串的概念,字符串长度的计算方法,尝试实现了strlen和strcpy函数,最后介绍了受限和不受限的字符串函数。一、字符串的概念1.从概念上讲,c语言中并没有字符串这一类型,它使用字符数组末尾加’\0’来模拟字符串。2.C语言中的字符串是以’\0’结尾的字符数组。3.C语言中的字符串可以分配于栈空间,堆空间或者只读存储区。这里的字符串分配于栈空间,堆空间或者只读存储区,是因为我们创建
漫步的风暴
·
2015-11-16 12:09
C
C语言学习笔记
(程序风格)
不良的风格和不良的文档是软件生产和维护代价高昂的两个重要原因。良好的编程风格能够大大提高程序的可读性。良好的编程风格的直接结果就是程序更容易正确运行。间接结果就是他们更容易维护。这将节省大笔资金成本。 空行用于分割不同的逻辑代码段,他们是按照功能分段的。 if和相关语句的括号是这些语句的一部分,而不是他们所测试的表达式的一部分。所以,我们在括号和表达式之间留下一个空格,使表达
·
2015-11-13 04:35
学习笔记
C语言学习笔记
---持续添加中
2011年3月27日 scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF 建立循环时需要特别注意的是哪个方面 明确定义结束循环的条件。 确保在循环判断中使用的值在第一次使用之前已经初始化。 确保循环在每个周期中更新了判断值。 while循环判断条件利用scanf()的返回值在scanf()遇到非要求输入的时候终止循环。  
·
2015-11-12 23:46
学习笔记
《
C语言学习笔记
》指针数组及其应用
C语言中,最灵活但又容易出错的莫过于指针了。而指针数组,是在C中很常见的一个应用。指针数组的意思是说,这个数组存储的所有对象都为指针。除了存储对象为指针,即一个地址外,其它操作和普通数组完全一样。 1 #include <stdion.h> 2 3 int main() { 4 int i; 5 char *name[] = {"BASIC&
·
2015-11-12 09:18
学习笔记
C语言学习笔记
——两个数交换位置的多种方式
第一种: 这一种也是最常见的一种 int main(void){ int a=10,b=20,; c=a; a=b; b=c;} 第二种: 使用指针来交换两个数的位置 void exchange(int *a,int *b){ int c; c=*a; *a=*b; *b=c;}int main(void){ int a
·
2015-11-11 08:10
学习笔记
c语言学习笔记
(1)——c语言的特点
一、c语言概述 1.为什么学习c语言? (1)c的起源和发展 第一代语言:机器语言 1101 第二代语言:汇编语言 add ax,bx; 第三代语言:高级语言 a+b; 结构化:c fortran basic(子语言vb) pascal(用于教学) 缺陷:结果化语言数据和操作是分离的 /*1980年分界
·
2015-11-10 22:38
学习笔记
C语言学习笔记
frist---输入两个数比较大小
C#学习中,问道艰辛,今自C学起,第一个函数学习:输入两个数比较大小,仅作练习; #include "stdafx.h" #include<stdio.h> // 包含stdio.h头文件 int max(int, int); // 函数声明 int main(){ int a,b; // 声明两个整型变量 prin
·
2015-11-09 14:16
学习笔记
C语言学习笔记
(三)
1.函数形参求值顺序: int i = 2; max(i, i++); a.若顺序从左到右则为max(2, 2); b.若顺序从右到左则为max(3, 2); 要写与求值顺序无关的函数。 2.函数值传递特点: a.形参与实参占有不同的内存单元; b.单向传递。 3.extern可以扩展函数的作用域,不管是在同一文件中还是在不同文件中。 4.const
·
2015-11-08 11:02
学习笔记
C语言学习笔记
(二)
C语言类型转换: 1. example: int a; a = 3.2 + 3 / 4.0; //先转换成double,得0.75 //3.2 + 0.75 = 3.95 //因为a
·
2015-11-08 11:01
学习笔记
C语言学习笔记
(一)
1.原码和补码 例子 '6':原码:0110; 补码:0110 '-6':原码:1110; 反码:1001;补码:1010 = 1001 + 1 (-6) + 6 = 0110 + 1010 = (1)0000 = 0; 当对补码取补时,得到的是他的原码;
·
2015-11-08 11:00
学习笔记
C语言学习笔记
--指针与字符串
字符类型 char(character)是一种整数,也是一种特殊的类型:字符。这是因为 ① 用单引号表示的字符字符字面量:‘a’,'1' ②‘’也是一个字符 ③printf和scanf里用%c来输入、输出字符。 1 #include<stdio.h> 2 int main() 3 { 4 char c; 5 char d;
·
2015-11-07 12:32
学习笔记
C语言学习笔记
--枚举&结构体
枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明: enum 枚举类型名字 {名字0,名字1,。。。,名字n}; 枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为它们就是常量符号,它们的类型是int,值则依次从0到n。 如:enum color{red,yellow,green}; 就创建了3个常量,red的值是0,yellow的值
·
2015-11-06 07:21
学习笔记
郝斌老师
C语言学习笔记
(一)
在给变量分配内存时,很可能这段内存存在以前其他程序使用留下的值。当使用VC编译器,若编译器发现没有给变量赋值而使用,就会返回一个以“85”开头的很大的数字(此时该段内存中为一个垃圾数,为了避免出现较常规的数而使程序员误以为自己已给变量进行过初始化),这个“85”开头的数叫“填充字”,提醒程序员没有初始化变量。 C代码 #include<stdio
·
2015-11-03 21:19
学习笔记
C语言学习笔记
(四)
1. char *name = malloc(20); name = "abcdef"; 这两条语句合起来会导致内存泄露,因为name先指向堆(heap),后又指向了常量区。 2.共用体所有的成员共用一段内存: union data{ short int i; char ch; }share; int a
·
2015-11-02 19:30
学习笔记
C语言学习笔记
(1)
1. 编译和链接 将程序转化为机器可执行的代码,C语言分为三个步骤: A. 预编译。程序首先会交给预处理器,预处理器执行以#开头的指令,然后给程序添加指令,或者修改指令。 B. 编译。修改后的程序进入编译器,编译器会把程序翻译成机器指令(也就是目标代码),但是这样的程序还是不能执行的。 C. 链接。链接器把由编译器产生的目标代码和其他所需的代码整合到一起,这些附加代
·
2015-11-01 11:21
学习笔记
C语言学习笔记
(8)
1. 字符串入门 字符串也称字符串字面量,是用一对双引号括起来的字符序列。 我们也许经常会遇到字符串特别长的情况,在C#中,我们一般会用@符号来表示。 Console.WriteLine(@"Hello World"); 但是在C中,我们会这样来写: int main(){ printf(
·
2015-11-01 08:25
学习笔记
C语言学习笔记
--类型定义&联合
一、类型定义 C语言自定义数据类型 (typedef) C语言提供一个叫做typedef的功能来声明一个已有的数据类型的新名字。 typedef int Length; 使得Length成为int类型的别名。 这样,Length就可以替代int出现在定义变量和声明函数的地方了。 Length a,b; Length a
·
2015-10-31 18:23
学习笔记
C语言学习笔记
--结构体
结构体定义三种方式: 1 #include<stdio.h> 2 //第一种定义方法 3 struct point { 4 int x; 5 int y; 6 }; 7 struct point p1,p2; 8 9 //第二
·
2015-10-31 18:23
学习笔记
C语言学习笔记
之成员数组和指针
成员数组和指针是我们c语言中一个非常重要的知识点,记得以前在大学时老师一直要我们做这类的练习了,但是最的还是忘记了,今天来恶补一下。 单看这文章的标题,你可能会觉得好像没什么意思。你先别下这个结论,相信这篇文章会对你理解C语言有帮助。这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接。微博截图如下。我觉得好多人对这段代码
·
2015-10-31 13:10
学习笔记
C语言学习笔记
<四>
////////////////////////////////////////////////////////////////////// C++ 学习笔记//日期:2013-05-10 &nbs
·
2015-10-31 09:22
学习笔记
C语言学习笔记
<五>
////////////////////////////////////////////////////////////////////// C++ 学习笔记//日期:2013-05-13 &nbs
·
2015-10-31 09:22
学习笔记
C语言学习笔记
<二 >
,操作符可以连接多个独立的操作¥++自增操作符和--自减操作符可以对变量进行操作,把变量内部的数字加1或者减1。这两个操作符写在变量前面的时候优先级非常高,写在后面的时候优先非常低。由于=号在C语言中已做为赋值表达式用,所以在C语言中,等于号用又等于==。&& 与 and|| 或 orC语言中支持如下逻辑操作符(==,!=,>,>=,<,<=,&&和||)&
·
2015-10-31 09:21
学习笔记
C语言学习笔记
<一 >
printf 函数便用时的四个特殊字符:\",\\,%%,\r scanf函数可以从键盘上读取数据并记录到变量中,需要包含stdio.h文件使用scan函数的时候一定要使用变量的地址表示变量而不能使用变量名称字符类开进由256个不同的字符构成,在C语言中使用chau 表示。ASCII码表规定了字符到数字之间的对应关系。‘d’-'a' = 'D'-'A'='3'-'0'通过ASCII码表
·
2015-10-31 09:21
学习笔记
C语言学习笔记
<三 >
////////////////////////////////////////////////////////////////////// C++ 学习笔记//日期:2013-5- &
·
2015-10-31 09:21
学习笔记
C语言学习笔记
<九>
数组名称和数组名了地址,得到的结果是一样的,都是一个相同的指针地址。但有一个重要的区别是,当数组名+1运算是得到的是地址加一个元素的大小而取数组地址 +1得到的是整个数组的大小,指针的运算和指针的类型有关。 数组名称也可以取地址,得到的地址数据和二维数组名称所代表的地址数据类似。对他们做加一操作时增加的是整个一维数组。这样的地址数据可以赋值给数组指针变量,这么指针声明方法如下int (*p_va
·
2015-10-30 14:31
学习笔记
C语言学习笔记
<八>
通过使用联合可以用不同的方式操作内存中同一段区域。 计算机中存储数据的方式有两种,把低位数据存储在低地址字节中的方式叫做小端存储方式,相反就叫大端存储方式,我们的计算机采用的是小端存储方式。 使用枚举类型可以把一组名称转换成整数,从数字0开始。 堆里的变量的生命周期是由程序员来管理的,可以使唤用C语言提供的函数对堆中的变量进行管理,为了使用这些函数需要包含头文件stdlib.
·
2015-10-30 14:30
学习笔记
C语言学习笔记
<六>
指针变量可以作为函数返回值使用,只能把全局变量的地址,静态局部变量的地址或者通过参数得到的地址当作返回值使用,普通局部变量的地址绝对不可以当返回值使用。 字符串是由内存中一组连续的字符变量构成的。C语言程序中使用第一个字符地地址表示整个字符串。'\0'是字符串的结尾字符,字的位置决定了一个字符串中有效字符变量的个数。这个字符在ASCII表中对应数字0 字面值是程序中表示字符串的一种写法,用双引
·
2015-10-30 14:30
学习笔记
C语言学习笔记
<七>
程序中不同的函数可以写在不同的.c源文件中。不同的源文件之间使用扩展名为.h 的头文件链接起来。 编写所有头文件时要使用条件编译进行控制,避免被多次编译。 多文件程序编译有两种办法 1.使用GCC命令对所有.c源文件统一编译。 2.使用gcc命令对每个单独的.c源文件进行编译,得到以.o作为扩展名的目标文件。最后使用gcc
·
2015-10-30 14:30
学习笔记
C语言学习笔记
(4)
1. 数组大小 我相信,在C#/Java中,更多的人愿意用List<T>来取代数组,一方面是List提供了较多的方法,另一方面也无需我们去指定数组的大小。 那么在C语言中,我们既然需要必须指定数组的大小,而一般来讲,很多数组大小事我们无法确定并且经常会发生变化的,那么我们最好的方式就是用宏定义来限定数组的大小。 #define SIZE 10int main
·
2015-10-30 14:25
学习笔记
C语言学习笔记
(6)
1. 指针的来源 在当代,大多数的现代计算机都会把内存分割成字节,每个字节都有着其唯一的地址。可执行程序由代码和数据两部分构成,而程序中的每个变量都占有着一个或多个字节,也就是说,每个变量都有着自己的地址。而这个就是指针的来源。 其实每个地址就是一个数,但是我们却不能用数来表示地址,存储地址,我们需要用指针变量。例如int *p = i,我们就可以说p是指针变量,存储着变量
·
2015-10-30 14:25
学习笔记
C语言学习笔记
(3)
1. typedef 在前文中,我们用宏定义来定义了一个BOOL类型,那么现在就用更专业的方式来定义类型。 typedef int Bool;int main (void){ Bool flag=1; if(flag) { printf("True"); } else { printf(&qu
·
2015-10-30 14:24
学习笔记
C语言学习笔记
(5)
1. 数组作为函数参数 函数是我们学习程序设计语言最基本的东西了,我在此不再赘述。只讨论一种特殊情况,就是数组作为函数的参数传递。 我们都知道,其实在传递数组的时候,实际上是传递了数组首元素的指针。明确了这一点之后,我们就可以思考下面的问题。 既然他只是传递了数组首元素的指针,那么他必然无法知道整个数组的大小,因此,我们如果希望在函数中用到数组的长度,必须要进行显式传递
·
2015-10-30 14:24
学习笔记
C语言学习笔记
之基础语法(一)
1、内存寻址由大到小,优先分配内存地址比较大的字节给变量 2、变量有限定义,内存地址就越大 3、输出格式为%p 4、一个变量要先初始化,再使用 #include <stdio.h> int main() { int a=10; int b=20; char c='f';
·
2015-10-23 08:10
学习笔记
c语言学习笔记
(15) 数组基础
摘要:总结了数组的概念,数组大小的计算方法,数组地址和数组名的关系,数组存在的一些盲点,最后用一个BUG实例对数组和指针的一个差别进行了分析。一、数组的概念数组是相同类型变量的有序集合,比如我们定义一个数组inta[5],那么这个数组名字就叫a,a就代表数组元素中的第一个元素的起始地址,这个数组里面有五个元素,每个元素都是int类型的,其中a[0],a[1],a[2],a[3],a[4],分别代表
漫步的风暴
·
2015-10-20 17:03
C
C语言学习笔记
#一些工具Valgrind:用于内存调试,内存泄露检测以及性能分析的软件开发工具。火焰图 :检查方法快慢ICU :http://site.icu-project.org/编码转换#命令式编程命令式编程使用指令式的风格来写,比如运算语句、循环判断等语句.早期的命令式编程都是计算机本身的机器语言。这些语言指令非常简单后来才有了允许变量、复杂表达式等的出现。像C、Java等大部分都是按命令式的
deyimsf
·
2015-10-10 23:00
黑马程序员----
C语言学习笔记
之学习总结《通讯录》程序实现
------Java培训、Android培训、iOS培训、.Net培训--------《通讯录》功能展示跟着视频自学了一个星期C语言,今天终于搞定了,花了四个小时终于把这个小程序搞定了,也许还有很多bug,不过目前重大bug都搞定了,希望大家多多指出我的错误,或者不合适的地方,共同学习1、操作界面及框架1)引入头文件2)进行必要地宏定义3)定义文件名称变量、联系人数组、联系人结构体4)定义函数、并
老男
·
2015-10-02 17:35
c语言基础
黑马程序员----
C语言学习笔记
之static和extern关键字
------Java培训、Android培训、iOS培训、.Net培训--------一、static和extern修饰局部变量1、static与extern对局部变量的作用1)延长局部变量的声明周期,从程序到程序退出,但是它并没有改变程序的作用域2)定义变量的代码在整个程序运行期间仅仅会执行一次例如:#include//没有使用static修饰局部变量voidsum(){intsum=0;pri
老男
·
2015-10-01 16:03
c语言基础
黑马程序员---
C语言学习笔记
之预处理指令、宏和条件编译
------Java培训、Android培训、iOS培训、.Net培训--------一、预处理指令的概念及分类1.基本概念以“#”号开头指令都称为【预处理指令】。如包含命令#include等。在源程序中这些命令都放在函数之外。而且一般都放在源文件的前面,他们称为【预处理部分】所谓预处理是指在进行编译的第一道扫描(词法扫描和语法扫描)之前所做的工作,预处理是C语言的一个重要功能,它由预处理程序负责
老男
·
2015-10-01 15:49
c语言学习笔记
(9)优先级及类型转换分析
摘要:总结了c语言优先级易错的部分,隐式转换类型的规则,分析了一个实例。一、c语言易错优先级总结如下表:优先级问题表达式实际结果.的优先级高于*,因此c引入了->消除该问题*p.f对p取偏移f,作为指针,然后进行解除引用操作*(p.f)[]高于*int*ap[]ap是一个元素为int类型指针的数组int*(ap[])函数()高于*int*fp()fp是一个函数,返回int*,int*(fp())=
漫步的风暴
·
2015-09-28 22:37
C
c语言学习笔记
(8)位运算符,++,--运算符的用法
摘要:总结了位运算符,++,--运算符的用法,给出了一个使用异或方法巧解面试题的例子,分析了贪心法的规则。一、位运算符用法c语言中的位运算符主要有以下几种:使用的时候主要有以下几个注意点:1.左移运算符将>将运算数的二进位右移,低位丢弃,高位补零。3.避免位运算符,逻辑运算符和数学运算符出现在同一个表达式中,如果要在同一个表达式中出现,那么需要用括号来表达运算次序。4.左移n位相当于乘以2的n次方
漫步的风暴
·
2015-09-28 17:33
C
c语言学习笔记
(7)单引号,双引号和逻辑符号的用法
摘要:总结了单引号,双引号和逻辑符号的用法,给出了两个实例便于理解。其实这部分真的挺简单的,但是还是花时间总结下吧,加深理解。一、单引号和双引号使用c语言中的单引号用来表示字符常量,双引号用来表示字符串常量。比如’a’表示字符常量,在内存中占一个字节,’a’+1就表示’a’的ascii码+1,就是’b’。比如”a”表示字符串常量,在内存中占两个字节,因为最后还有一个结束符号’\0’,”a”+1表示
漫步的风暴
·
2015-09-25 16:00
C
上一页
9
10
11
12
13
14
15
16
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他