
Language C ,C语言 数据结构 栈队列树图
发布日期:2021-05-08 21:58:46
浏览次数:19
分类:精选文章
本文共 3246 字,大约阅读时间需要 10 分钟。
数组
int main(){ // array int arr[10]; int j; for(j=0;j<sizeof(arr)/sizeof(int);j++){ printf(“arr[%i] value is %i\n”,j,arr[j]); } } sizeof()获取当前类型位数,sizeof(arr)/sizeof(int)获取数组长度二维数组
int main(){ int matrix[2][2]; matrix[0][0]=1; matrix[0][1]=1; matrix[1][0]=1; matrix[1][1]=1; int col; int row; for(row=0;row<2;row++){ for(col=0;col<2;col++){ printf("%d\t",matrix[row][col]); } printf("\n"); } }
方法
int factorial(int n){ if(n=1){ return 1; } else{ return n*factorial(n-1); } }返回值 方法名(参数)
值传递
value reference && address reference#include#include void change_value(int n){ n = 10;} int main(){ int n = 100; change_value(n); printf("the value of n is %i",n);}
结构体
#include#include struct person{ int id; int age; char *name; }; typedef struct person person; int main(){ person p; p.id = 10; p.age = 20; p.name = "binhao"; printf("the name of a person is:%s",p.name); }
typedef 作用:后边的代码直接使用定义的结构体,不需要再使用struct关键字。
标准输入输出
scanf方法和printf方法,通过&和%可以完成标准输入输出 百分号%的作用如下: %d整型输出,%ld长整型输出, %p指针变量地址,如果数处数据不够8位数,则左边补零 %o以八进制数形式输出整数, %x以十六进制数形式输出整数, %u以十进制数输出unsigned型数据(无符号数)。 %c用来输出一个字符, %s用来输出一个字符串, %f用来输出实数,以小数形式输出,保留2位小数&+%.2f %e以指数形式输出实数, %g根据大小自动选f格式或e格式,且不输出无意义的零。#include#include int main(){ char a[10]; gets(a); printf("the value of a is:%s\n",a); int b; scanf("%i",&b); printf("\nthe value of b is:%i",b);}
指针
//pointer
int main(){
int a = 5; int *p; p = &a; printf("%p",p); }result:
int main(){ int a = 5; int *p; p = &a; printf("%p",p); printf("\nthe value of address of p:%i",*p);}
定义一个指针变量*p ,使用的时候p表示一个地址,*p表示该地址上的值。
//pointerstruct node{ int v1; int v2;};typedef struct node node;int main(){ // int arr[10]; //分配4byte的空间 // int * arr = malloc(4); //(int *) make it the same type node *n; printf("the size of the node:%i",sizeof(n)); node *m; n-m; m++; int * arr = (int *)malloc(10*sizeof(int)); int i; for(i=0;i<10;i++){ arr[i]=15; } printf("the size of int:%i\n",sizeof(arr)); printf("%p",arr);}
数组求和
int sum(int arr[],int len){ int i; int res=0; for(i=0;i
作用域Scope
只需要记住一点,变量只在自己所在作用域有效 demo:int main(){ int i = 9;// int i; { int i; } printf("the value of i is %i \n",i); }
作用域优先级:
作用域级别越低优先级越高。数据结构
栈,类似放堆叠的积木,只能往上放,也只能从上边取。
做应用层开发很少用到,但底层确实很重要。 想想? 如果没有栈一个函数里调用另一个函数会有什么结果? 基本实现如下:#include#include #include struct stack_node{ int value; struct stack_node * next;};struct stack{ stack_node * top; int size;};typedef struct stack_node stack_node;typedef struct stack stack;stack * create_stack(){ stack * s = (stack *)malloc(sizeof(stack)); s->size = 0; s->top = NULL; return s;}bool empty_stack(stack * s){ return s->size == 0;}void push_stack(stack * s,int value){ stack_node * n = (stack_node *) malloc(sizeof(stack_node)); n->value = value; n->next = s->top; s->top = n; s->size++;}int pop_stack(stack * s){ int v = s->top->value; stack_node * sn = s->top; s->top = s->top->next; s->size--;// free memory free(sn); return v;}int main(){ stack *s; s = create_stack(); push_stack(s,20); push_stack(s,20); push_stack(s,20); int v = pop_stack(s); printf("pop a element of stack s:%i\n",v); printf("the size of stack s is:%i",s->size);}
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月06日 08时32分47秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
410. Split Array Largest Sum
2021-05-09
开源项目在闲鱼、b 站上被倒卖?这是什么骚操作?
2021-05-09
Vue3发布半年我不学,摸鱼爽歪歪,哎~就是玩儿
2021-05-09
《实战java高并发程序设计》源码整理及读书笔记
2021-05-09
Java开源博客My-Blog(SpringBoot+Docker)系列文章
2021-05-09
程序员视角:鹿晗公布恋情是如何把微博搞炸的?
2021-05-09
【JavaScript】动态原型模式创建对象 ||为何不能用字面量创建原型对象?
2021-05-09
Linux应用-线程操作
2021-05-09
多态体验,和探索爷爷类指针的多态性
2021-05-09
系统编程-进程间通信-无名管道
2021-05-09
记2020年初对SimpleGUI源码的阅读成果
2021-05-09
C语言实现面向对象方法学的GLib、GObject-初体验
2021-05-09
系统编程-进程-ps命令、进程调度、优先级翻转、进程状态
2021-05-09
为什么我觉得需要熟悉vim使用,难道仅仅是为了耍酷?
2021-05-09
一个支持高网络吞吐量、基于机器性能评分的TCP负载均衡器gobalan
2021-05-09
HDOJ2017_字符串统计
2021-05-09
高等软工第二次作业《需求分析阶段总结》
2021-05-09
404 Note Found 团队会议纪要
2021-05-09