c语言函数

C语言学习记录_2019.02.07

匿名 (未验证) 提交于 2019-12-02 23:05:13
C99开始,可以用变量来定义数组的大小;例如,利用键盘输入的变量来定义数组大小; 赋值号左边的值叫做左值; 关于数组:编译器和运行环境不会检查数组下标是否越界,无论读还是写。 越界数组可能造成的问题提示语:segmentation fault 程序员的责任:有效的下标值:[0,数组的大小-1] 例:如下字符可以作下标 int a[255]; a['A'] = 1; 因为A的ascll码值小于255; 安全的做法:数组使用之前初始化数组; 函数的好处:把功能单纯且代码量大的部分封装为函数,提高可视性; 代码复制:是程序质量不良的表现; 初见函数: #include<stdio.h> int get_sum(int start,int end) { int sum=0; int i=0; for(i=start;i<=end;i++) { sum+=i; } printf("从%d到%d的和是%d\n",start,end,sum); } int main() { get_sum(1,10); get_sum(20,30); get_sum(35,45); return 0; } 其中,在函数定义中参数表(int x,int y )内可以直接定义变量;且属于函数内的尽量全都放到函数内完成变量定义和打印等; 使用函数的优点: 2.有利于以后的程序维护;便于团队开发分工合作 3

java基础- 意识流

匿名 (未验证) 提交于 2019-12-02 21:53:52
1.trim() trim()方法返回调用字符串对象的一个副本,但是所有起始和结尾的空格都被删除了,例子如下:String s=” Hello World “.trim();就是把”Hello World”放入s中。 2.script 中data-main与src的区别 这个是当你使用require.js的库的时候才这么用的。data-main类似C语言中的main函数,表示在众多的JS文件中的主要入口文件是哪个。 文章来源: java基础- 意识流

c语言 hello

限于喜欢 提交于 2019-12-02 21:52:44
#include <stdio.h> int main() { /* 我的第一个 C 程序 */ printf("Hello, World! \n"); return 0; }    实例解析: 所有的 C 语言程序都需要包含 main() 函数。 代码从 main() 函数开始执行。 /* ... */ 用于注释说明。 printf() 用于格式化输出到屏幕。 printf() 函数在 "stdio.h" 头文件中声明。 stdio.h 是一个头文件 (标准输入输出头文件) , #include 是一个预处理命令,用来引入头文件。 当编译器遇到 printf() 函数时,如果没有找到 stdio.h 头文件,会发生编译错误。 return 0; 语句用于表示退出程序。 来源: https://www.cnblogs.com/82nlf-xlqb/p/11763967.html

C语言入门-全局变量

∥☆過路亽.° 提交于 2019-12-02 20:01:55
一、全局变量 定义在函数外面的变量是全局变量 全局变量具有全局的生存期和作用域 它们与任何函数无关,在任何函数内部都可以使用它们 #include <stdio.h> int f(void); // 全局变量 int gALL = 12; int main(int argc, char const *argv[]) { printf("in %s gALL=%d\n", __func__,gALL); f(); printf("agn in %s gALL=%d\n", __func__,gALL); return 0; } int f(void) { printf("in %s gALL=%d\n", __func__,gALL); gALL += 8; printf("agn in %s gALL=%d\n", __func__,gALL); return gALL; } // in main gALL=12 // in f gALL=12 // agn in f gALL=20 // agn in main gALL=20 二、全局变量初始化 没有做初始化的全局变量会得到0值 指针会得到NULL值 只能用编译时刻已知的值来初始化全局变量 它们的初始化发生在main函数之前 三、被隐藏的全局变量 如果函数内部存在与全局变量同名的变量,则全局变量被隐藏 #include

《C语言 — 隐式函数声明implicit declaration 》

我们两清 提交于 2019-12-02 18:31:54
1. 隐式函数声明概念   在C语言中,函数在调用前不一定非要声明。如果没有声明,那么编译器会自动按照一种隐式声明的规则,为调用函数的C代码产生汇编代码。下面是一个例子: int main(int argc, char** argv) { double x = any_name_function(); return 0; }   单纯的 编译 上述源代码, 并没有任何报错 ,只是在 链接 阶段因为 找不到名为 any_name_function 的函数体而报错 。   [smstong@centos192 test]$ gcc -c main.c [smstong@centos192 test]$ gcc main.o main.o: In function `main': main.c:(.text+0x15): undefined reference to `any_name_function'(`any_name_function'引用没有定义) collect2: ld 返回 1   之所以编译不会报错,是因为C语言规定,对于没有声明的函数,自动使用隐式声明。相当于变成了如下代码: int any_name_function(); int main(int argc, char** argv) { double x = any_name_function(); return

c语言-----劫持原理

廉价感情. 提交于 2019-12-02 17:10:00
1. 劫持原理介绍   (1) 通过劫持技术我们可以实现某些进程的拦截,比如禁止创建文件,禁止打开qq,禁止关机等等一系列的操作   (2) 弹窗拦截就是最常见的一种劫持技术的实现。 2. 使用的工具   (1) vs2017   //编写c语言程序 可以用其他的版本 但是不建议2010及以下的 其他的IDE我没用过   (2) DllInject.exe //查看当前所有的进程并且可以进行DLL注入 3. 使用的技术与原理   (1) 函数名和函数实体     函数名的本质就是一个地址,但是函数名的地址和函数实体的地址不是同一个地址。 例如: 1 void show(){ 2 MessageBoxA(NULL,"我是文本","我是标题",0); 3 }     在show()函数中,show()的函数名是一个地址,show()函数中的代码 MessageBoxA(NULL, " 我是文本 ", " 我是标题 ", 0 ); 也就是函数实体也有一个地址。那么怎么证明呢?     在vs2017中使用反汇编进行调试:(源码如下) 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<Windows.h> 4 void show(){ 5 MessageBoxA(NULL,"我是文本","我是标题",0); 6 } 7 int main

第16课类的真正形态

隐身守侯 提交于 2019-12-02 16:57:44
类的真正形态(上) 问题:经过不停的改进,结构体struct变得越来越不像它在C语言中的样子了。 在C语言中,struct中 是不能定义成员函数的 ,你如果实在想用成员函数,只能 定义成函数指针的形式 。这种方式在内核中太普遍了。 struct 在C语言中已经有了自己的含义,因此C++也得必须继续兼容,但是在兼容的基础上又有了改进,比如说可以定义成员函数了。 在C++中提供了新的关键字class用于类定义 class和struct的用法是完全相同的 class和struct有什么本质区别? 在用struct定义类时,所有成员的 默认访问级别为public 在用class定义类时,所有成员的 默认访问级别为private struct A {   //default to public   int i;   //default to public   int getI()   {     return i;   } }; class A {   //default to private   int i;   //default to private   int getI()   {     return i;   } }; 好的习惯:不管是用class定义类,还是用struct定义类,必须显示的指明成员变量和成员函数的访问级别。 类的真正形态 (下) 小实例 需求

C语言字符串处理函数

爷,独闯天下 提交于 2019-12-02 15:35:50
一、函数-----sprintf() 1、头文件:#include <stdio.h> 2、作用:sprintf()函数用于将格式化的数据写入字符串,其原型为:     int sprintf(char *str, char * format [, argument, ...]);   char *str:为要写入的字符串数组;   char *format: 格式化操作符,注意,该操作符对应后面的数据的格式。 3、用法举例:      #include<cstdio> #include<cstring> #define _CRT_SECURE_NO_WARNINGS using namespace std; int main() { char str[99], st[99]; strcpy(st, "hello"); int x = 12, y = 9; sprintf(str, "%d%d%s", x, y, st); puts(str); return 0; }out:129hello 来源: https://www.cnblogs.com/deep-sleep/p/11751859.html

C语言I博客作业05

独自空忆成欢 提交于 2019-12-02 12:51:12
问题 答案 本周教学内容&目标 第2章 用C语言编写程序-函数 2.5 生成乘方表与阶乘表。使学生对函数的定义和调用有初步的认识,能模仿编程。 这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/9827 我在这个课程的目标是 熟练掌握C语言及各大编译器 这个作业在那个具体方面帮助我实现目标 完成PTA作业,参考课本,向助教请教 参考文献 《百度》《C语言程序设计》 https://baike.baidu.com/item/C语言库函数/3319100#3_2 1.PTA实验作业 1.1 题目 : 6-1 判断一个整数的各位数字平方之和能否被5整除 编写函数fun,其功能是:判断一个整数的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。 函数接口定义:int fun(int n );其中 n 是用户传入的参数。 函数判断n的各位数字平方之和能否被5整除,能被5整除则返回1,否则返回0。 -裁判测试程序样例: 1.1.1数据处理 数据表达: 变量 变量来源 变量类型 主调函数名称 被调函数名称 被调函数的类型 实参名称 实参类型 形参名称 形参类型 i,s,n,m 输入+计算 int main()函数 fun()函数 int n int(整形) m

C语言I博客作业05

假如想象 提交于 2019-12-02 12:51:06
问题 答案 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9826 我在这个课程的目标是 对 函数的定义和调用 有初步的认识,能 模仿编程 这个作业在那个具体方面帮助我实现目标 用C语言编写程序 参考文献 《C语言程序设计》 一、PTA实验作业 1.1水仙花数判断 题目内容描述 :本题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等)。例如153=1^3+5^3+3^3=1+125+27=153,而1或155则不是水仙花数。如果是水仙花数,则函数返回1,否则返回0. 函数接口定义 :int func(const int N); 其中N是用户传入的参数。N的值不超过int类型的范围。 如果参数N是水仙花数,则返回1,否则返回0 。 1.1.1数据处理 数据表达:先用int定义整型变量sum,x。再将N的值赋给下x,然后用while语句执行循环。用if-else语句判断sum和N的值是否相等。如果相等则输出1,不相等输出0. 数据处理:运算符=是赋值,==是相等。 函数参数:主调函数是main。被调函数是func,数据类型为整型。实参是void。形参是N,数据类型为const int。 1.1.2实验代码截图