c语言函数

c语言中的const的作用及解析

偶尔善良 提交于 2019-11-30 20:55:33
有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定。例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小。为了满足这一要求,可以使用 const 关键字对变量加以限定: const int MaxNum = 100 ; //班级的最大人数 这样 MaxNum 的值就不能被修改了,任何对 MaxNum 赋值的行为都将引发错误: MaxNum = 90 ; //错误,试图向 const 变量写入数据 我们经常将 const 变量称为常量(Constant)。创建常量的格式通常为: const type name = value; const 和 type 都是用来修饰变量的,它们的位置可以互换,也就是将 type 放在 const 前面: type const name = value; 但我们通常采用第一种方式,不采用第二种方式。另外建议将常量名的首字母大写,以提醒程序员这是个常量。 由于常量一旦被创建后其值就不能再改变,所以常量必须在定义的同时赋值(初始化),后面的任何赋值行为都将引发错误。一如既往,初始化常量可以使用任意形式的表达式,如下所示: #include <stdio.h> int getNum () { return 100 ; } int main () { int n = 90 ; const int MaxNum1 = getNum

Java相关知识2

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-30 18:43:54
11、是否可以从一个static方法内部发出对非static方法的调用? 不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。 12、Integer与int的区别 int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况。 例如:要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,所以用el表达式在文本框中显示时,结果为0,所以,int不适合作为web层的表单数据的类型。 在Hibernate中,如果将OID定义为Integer类型

C语言知识点总结篇

白昼怎懂夜的黑 提交于 2019-11-30 15:48:04
Debug和Release版本比较 Debug附加了许多调试信息,主要用于调试,故文件大; Release是经过优化后的版本,去掉了调试信息,代码进行了优化,故文件较小,且编译速度快过Debug,用于发布平台的配置管理器的设置; 32位与64位 32位,地址为32位,最大使用内存4G,只能运行32位的数据; 64位,地址为64位,既可以运行32位的数据,也可以运行64位的数据; 指针 指针是个量,对应一块内存区域; 指针存储的是某个内存单元的地址; 访问方式: 1、直接访问:按变量地址存取变量值,取地址符&; 2、间接访问:通过存放变量地址的变量去访问变量,间接运算符*; 在函数中改变一个外部变量,需要变量的地址; 若是数据,需要指向数据的指针存储数据的地址; 若是指针,需要指向指针的指针存用户指针的地址; 数组与指针 p[i]等价于*(p+i),&p[i]等价于p+i; a[i][j]等价于*(*(a+i)+j),&a[i][j]等价于*(a+i)+j, a[i]等价于*(a+i); 行数组指针定义方法:数据类型(*指针变量名)[二维数组列数]; 二维数组地址不可变化,数据可以变化,可以在不修改地址的情况下管理数据,指针数组指向的数据不可变化,但地址可以变化,在不修改数据的情况下查看数据; 三维数组与指针,A[i][j][k]的三种表达形式:*(A[i][j]+k)、*(*(A

C语言标准库等

大城市里の小女人 提交于 2019-11-30 15:46:02
1、C语言的基本内容暂时就先不看了, 可以参考这里的基本内容: C语言的内容参考链接 C语言学习资源 2、系统函数 &&&& 系统库里面的内容; usr/include 开发环境下提供对应的系统库[开发对应系统上面的应用都是有这个系统库的] &&& 有时间也要熟悉一下系统常用的函数内容 了解:ANSI C ANSI C是由美国国家标准协会(ANSI)及国际标准化组织(ISO)推出的关于C语言的标准。ANSI C 主要标准化了现存的实践, 同时增加了一些来自 C++ 的内容 (主要是函数原型) 并支持多国字符集 (包括备受争议的三字符序列)。 ANSI C 标准同时规定了 C 运行期库例程的标准。 &&& 3、下面会对C语言中系统的一些标准库的了解: 1)<assert.h> C 标准库的 assert.h头文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。 123 void assert(int expression);expression: 一个变量或任何C表达式;true, assert不执行任何动作。否则,assert()会在标准错误stderr上显示错误消息,并且终止程序。[可以查看一下里面的几个内部的使用方法,上面的这个方法最常用] 2)<ctype.h> /<_ctype.h>文件 1>提供一些函数用于测试和映射字符。 2

C语言标准库等

随声附和 提交于 2019-11-30 15:45:59
1、C语言的基本内容暂时就先不看了, 可以参考这里的基本内容: C语言的内容参考链接 C语言学习资源 2、系统函数 &&&& 系统库里面的内容; usr/include 开发环境下提供对应的系统库[开发对应系统上面的应用都是有这个系统库的] &&& 有时间也要熟悉一下系统常用的函数内容 了解:ANSI C ANSI C是由美国国家标准协会(ANSI)及国际标准化组织(ISO)推出的关于C语言的标准。ANSI C 主要标准化了现存的实践, 同时增加了一些来自 C++ 的内容 (主要是函数原型) 并支持多国字符集 (包括备受争议的三字符序列)。 ANSI C 标准同时规定了 C 运行期库例程的标准。 &&& 3、下面会对C语言中系统的一些标准库的了解: 1)<assert.h> C 标准库的 assert.h头文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。 123 void assert(int expression);expression: 一个变量或任何C表达式;true, assert不执行任何动作。否则,assert()会在标准错误stderr上显示错误消息,并且终止程序。[可以查看一下里面的几个内部的使用方法,上面的这个方法最常用] 2)<ctype.h> /<_ctype.h>文件 1>提供一些函数用于测试和映射字符。 2

C语言作用域和链接属性

六月ゝ 毕业季﹏ 提交于 2019-11-30 14:43:13
一.作用域 当变量被定义在程序不同位置时,它的作用范围是不一样的,这个作用范围就是我们所说的作用域。 C语言编译器可以确认4种不同类型的作用域: ——代码块作用域 ——文件作用域 ——原型作用域 ——函数作用域 1.代码块作用域 在代码块中定义的变量,具有代码块作用域。作用范围是从变量定义的位置开始,到标志该代码块结束的右大括号{}处 尽管函数的形式参数不在大括号内定义,但同样具有代码块作用域,隶属于包含函数体的代码块 #include <stdio.h> int main(void) { int i = 100; // i1 { int i = 110; // i2 { int i = 120; // i3 printf("i = %d\n", i); } // i = 110 { printf("i = %d\n", i); int i = 130; // i4 printf("i = %d\n", i); } printf("i = %d\n", i); } printf("i = %d\n", i); return 0; } 2.文件作用域 任何在代码块之外声明的标识符都具有文件作用域,作用范围是从它们的声明位置开始,到文件的结尾处都是可以访问的。 另外,函数名也具有文件作用域,因为函数名本身也是在代码块之外。 #include <stdio.h> void func

二:C语言复习基础--函数

那年仲夏 提交于 2019-11-30 07:49:52
一:函数的声明和定义 //1.函数声明(参数变量可省略) 返回值类型 函数名(参数类型 参数,参数类型 参数,...); //2.函数定义 返回值类型 函数名(参数类型 参数,参数类型 参数,...) { 语句; return 返回值; } //3.参数类型存在隐式转换 int fun(int c,int b) { printf("%d,%d\n",c,b); double a=100.09; return a; } int main() { double a=fun(1.9,2.3); printf("%f",a); } 二:main函数的始终 1.main函数的三种形式 //无参 int main(); //参数个数和参数列表 int main(int argc,char *argv[]); //参数个数和参数列表、环境变量列表 int main(int argc,char *argv[],char *envp[]); 2.main函数原理 C90标准中,规定了执行环境,对于没有操作系统的环境,入口地址是什么都可以。对于有操作系统的环境中,链接器会把main函数和另外的启动程序链接,而启动程序会引用你写的main函数 #include<stdio.h> int print() { printf("helloworld"); return 0; } //编译参数:gcc test

C语言保留字(关键字)详解

久未见 提交于 2019-11-30 04:16:17
C语言保留字(关键字)详解 保留字又称关键字。指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。每种程序设计语言都规定了自己的一套保留字。例如:BASIC语言规定不能使用LIST作为变量名或过程名,因为LIST是一个BASIC语言专用于显示内存程序的命令。C有 22+10 = 32个关键字。C++ 有22+10+11+20 = 63 个关键字。JAVA 有22+ 9+ 17 = 48 个关键字 ps:以上内容来自百科。其中,C89中,(C语言标准)中,类型说明保留字: int,long,short,float,double,char,unsigned,signed,const,void,volatile,enum,struct,union 语句定义保留字:if,else,goto,switch,case,do,while,for,continue,break,return,default,typedef 存储类说明保留字:auto,register,extern,static长度运算符保留字:,sizeof 具体含义如下: 下面,我们就几个相对比较容易用错的保留字进行分析,主要包括 Return, void,const,break,continue以下内容参阅《c程序设计竞赛实训教程》和一些大牛博客结合写的。1.return

CPrimer Plus学习手记——第二章-快速概要-命名

流过昼夜 提交于 2019-11-30 03:50:25
命名 给变量命名时要使用有意义的变量名或标识符(如,程序中需要一个变量数羊,该变量名应该是sheep_count而不是x3)。 如果变量名无法清楚地表达自身的用途,可在注释中进一步说明。这是一种良好的编程习惯和编程技巧。 C99和C11允许使用更长的标识符名,但是编译器只识别前63个字符。对于外部标识符(参阅第12章),只允许使用31个字符。〔以前C90只允许6个字符,这是一个很大的进步。旧式编译器通常最多只允许使用8个字符。〕 实际上,你可以使用更长的字符,但是编译器会忽略超出的字符。也就是说,如果有两个标识符名都有63个字符,只有一个字符不同,那么编译器会识别这是两个不同的名称。 如果两个标识符都是64个字符,只有最后一个字符不同,那么编译器可能将其视为同一个名称,也可能不会。标准并未定义在这种情况下会发生什么。(忽略掉了超过的字符) 可以用小写字母、大写字母、数字和下划线(_)来命名。而且,名称的第1个字符必须是字符或下划线,不能是数字。 有效和无效的名称 无效的名称 第一个$符号不是字母、也不是下划线。** 第二个不能用数字2。 第三个-符号 第四个使用空格符号了 第五个‘符号 操作系统和C库经常使用以一个或两个下划线字符开始的标识符(如,_kcab),因此最好避免在自己的程序中使用这种名称。 标准标签都以一个或两个下划线字符开始,如库标识符。这样的标识符都是保留的

C语言(函数,DEVFORGE学编程社区)

ぃ、小莉子 提交于 2019-11-30 03:16:18
1、A+B 2 1 #include<stdio.h> 2 3 int fun(int m, int n) 4 { 5 return (m+n)%100; 6 } 7 8 int main() 9 { 10 int n,a,b; 11 scanf("%d",&n); 12 while(n--) 13 { 14 scanf("%d%d",&a,&b); 15 printf("%d\n",fun(a,b)); 16 } 17 return 0; 18 } 2、最小整数 1 #include<stdio.h> 2 3 int fceil(double x) 4 { 5 if(x>0) 6 return x+0.5; 7 else 8 return x; 9 } 10 11 int main() 12 { 13 double x; 14 scanf("%lf",&x); 15 16 printf("%d\n",fceil(x)); 17 18 return 0; 19 } 3、最大整数 1 #include<stdio.h> 2 3 int getfloor(double x) 4 { 5 if(x<0) 6 return x-0.5; 7 else 8 return x; 9 } 10 11 int main() 12 { 13 double x; 14 scanf("%lf",&x);