【C语言-函数】教程文章相关的互联网学习教程文章

【C语言】使用结构体和malloc函数时的一些错误。【代码】

使用结构体错误:#include <stdio.h>struct STU {char *name;int score; }stu,*pstu; int main () {strcpy(stu.name,"bit-tech");strcpy(pstu->name,"bit-tech");return0; }错误一:strcpy(stu.name,”bit-tech”);结构体中的成员name是一个指针,声明结构体时并没有对结构体成员初始化,所以成员name没有指向指定的空间,当我们在主函数中想向通过strcpy函数对成员name指向的空间拷贝内容时,却发现程序挂掉了。错误二:strcpy(ps...

C语言之函数调用12—递归法求阿克曼函数

//递归法! /* =========================================== 题目:编写阿克曼函数的递归函数程序! A(m,n)=n+1 (m=0)A(m-1,1) (m=0)A(m-1,A(m,n-1)) (m!=0,n!=0)=========================================== */ #include<stdio.h> int A(int m,int n) {if(m==0)return n+1;else if(n==0)return A(m-1,1);elsereturn A(m-1,A(m,n-1)); } void main() {int m,n,p,flag=1;while(...

总结文件操作函数-目录(三)-C语言

获取、改变当前目录:原型为:#include <unistd.h> //头文件char *getcwd(char *buf, size_t size); //获取当前目录,相当于pwd命令int chdir(const char *path); //修改当前目录,即切换目录,相当于cd命令其中getcwd()函数:将当前的工作目录绝对路径复制到参数buf所指的内存空间,参数size为buf的空间大小. 在调用此函数时,buf所指的内存空间要足够大,若工作目录绝对路径的字符串长度超过参数size大小,则回值NULL,errno的...

【C语言】自己编写程序实现strrchr函数,即在给定字符串中找特定的字符并返回最后出现的位置【图】

//自己编写程序实现strrchr函数,即在给定字符串中找特定的字符并返回最后出现的位置 #include <stdio.h> #include <string.h> char * my_strrchr(char const *str,int ch) {int count=0;while(*str!='\0'){count++;str++;}str--;while(count){if(*str!=ch){str--;count--;}elsereturn str;}printf("未找到该字符。\n");return 0; } int main() {char *p="abcdefabcdef";char a;printf("请输入您要查找的字符:");scanf("%c",&a);p...

c语言中可以在函数内改变全局变量的值【代码】

实例代码如下: 1 #include<stdio.h>2int global_value=9;3void change(void)4{5 global_value=8;6}7void main()8{9 printf("before: global_value=%d",global_value ); 10 printf("\n"); 11 change(); 12 printf("after: global_value=%d",global_value); 1314 } 运行结果:before: global_value=9after: global_value=8Process returned 23 (0x17) execution time : 0.480 sPress any key to continue...

C语言随笔5:函数、函数指针

函数C语言中函数参数传递时,将实参的值拷贝到函数参数的存储区中。这种传递参数的方式称为按值传递。函数不会访问实参本身,访问的是函数存储在栈区的副本,不会改变实参.函数凋用结束,函数在栈区的内容释放. 若要改变实参本身.需用指针传递待修改变量的地址,使函数参数保存该变量地址的值。然后在函数中,通过参数保存的地址间接访问待修改的变量。大部分书籍,将这种做法称为按址传递或按引用传递。实际上,这种传递方式仍然是按...

Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器【代码】【图】

Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型,函数之内的我们先来看一张传播久远的图片‘一.各种数据类型介绍整型整形包括短整型、整形和长整形。短整形short a=1;整形一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是地...

C语言之函数和字符串

二、函数:2.1、函数的执行:  1、当我们每次进入一个函数的时候,原函数的栈底进行一个备份,之后将当前函数的栈底和栈顶指针分作同一个。  2、此时我们就可以说产生了一个新栈,产生新栈之后会在新栈中申请一段空间(栈帧),申请到空间之后。  3、再将需要备份的一些寄存器压到栈中。  4、之后将栈中的这些空间进行初始化为:0xCCCCCCCC。  5、到这里就已经做好了函数中所有的临时变量空间的分配。  6、之后就可以直...

C语言考题:输入一个字符串,将此字符串中特定的字符删去后, 显示新的字符串,要求用函数来完成删去字符的操作。【代码】

#include <stdio.h> #include <string.h>/*此题只需要删除单个字符,比较简单。相信大家也能做出来的。我这个也是可以实现的。只是加了两个判断如果需要删除特定的"字串"。下面的程序就可以实现。 编写程序:输入一个字符串,将此字符串中特定的字符删去后, 显示新的字符串,要求用函数来完成删去字符的操作。 */del_string(char *str,char *sub){int i,j,k=0;char newstr[30];for(i=0;i<strlen(str);i++){for(j=0;j<strlen(sub)...

C语言 指针基础篇 数组,函数与指针的运用 2 14【代码】【图】

下面看看如何在函数中运用指针吧 下面是往函数传入指针的简单操作,不是传入数组的。判断一个a是否大于b是的话给,是的话对其进行操作,不是的话就直接返回。 1 #include <stdio.h>2int main(){3int num1,num2,*p1,*p2;4 p1 = &num1,p2=&num2;5 scanf("%d%d",&num1,&num2);6 7int fun(int *n1,int *n2); //我们在声明函数时候,要定义好“指针变量” 8if(*p1<*p2){9 fun(p1,p2); //而在传入值的时候...

C语言字符串处理函数【代码】

(1)字符串的复制:字符串复制是比较常见的操作之一,在字符处理函数中包含strcpy函数,该函数可用于复制特定长度的字符串到另一个字符串。其语法为:strcpy(str1,str2),str1是目的字符数组名,str2是源字符数组名,也可以是字符串常量。如下例:#include<stdio.h> #include<string.h> int main() {char str1[30],char2[30];printf("输入目的字符串:\n");gets(str1); /*输入目的字符串*/printf("输入源字符串:...

C语言之函数调用17—递归法之一般函数的调用(2)

//递归法 /* ================================================================== 题目:求F(60),其中F(n)定义如下: F(0)=0; F(1)=1; F(2n)=f(n)+3; F(2n+1)=F(n)+F(2n-1). ================================================================== */ #include<stdio.h> double F(int n) {if(n==0) return 0;else if(n==1) return 1;else if(n%2==0)return F(n/2)+3;else if(n%2!=0)return F((n-1)/2)+F(n-2); } void main() {int...

C语言Scanf函数【图】

C语言的scanf函数一、变量的内存分析(一)字节与地址①. 内 存以字节为单位 每个字节都有自己的内存地址,根据地址就可以找到该字节。整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间就相当于是每个字节,地址就是房 号,根据房号可以找到房间(根据地址也可以找到内存中的字节)。相邻房间的房号是连续的,相邻字节的地址也是连续的。计算机中通常以十六进制表示地址。②. 不同类型占用的字节是不一样的,数据越大...

C语言随机函数

在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( int a)。可能大家都知道C语言中的随机...

C语言:函数【代码】

#include <stdio.h> #include <math.h> #include <stdlib.h> #include <time.h> #define PI 3.1415 int main() { float x=30;srand((unsigned)time(NULL));printf("%lf\n",tan(x*PI/180));printf("%lf\n",log(x*PI/180));printf("%lf\n",log10(x*PI/180));printf("sin=%lf\n",sin(x*PI/180));printf("%lf\n",exp(x*PI/180));printf("%lf\n",cos(x*PI/180));printf("%lf\n",sqrt(16));//sqrt=Square Root Calculations(平方根函数...