
C语言
【星星之火】
请认真的去做好一些事情。
展开
-
C语言-数组元素的初始化赋值
常用的初始化方式int arry1[5] = {1,2,3,4,5};int arry1[5] = {0};int arry3[] = {1,2,3,4,5};乱序初始化#include <stdio.h>int main(void){ int i=0; int a[]= { [0]=0, [3]=33, [2]=22, [1]=11, }; for (i=0;i <原创 2021-08-12 22:28:37 · 2857 阅读 · 0 评论 -
进程+线程+死锁的相关知识
面试中经常会被问到,进程及线程的相关知识,这里做一个总结。1、进程及线程的概念很容易区分俩概念:进程:如QQ,微信等应用软件,都是一个进程,我们说正在运行的程序叫进程。每个进程都有完全属于自己的、不被干扰的内存空间,此空间,被分成几个段(Segment),分别是Text, Data, BSS, Heap, Stack。。线程:容易想到多线程,就是并发的执行多个任务。总结,进原创 2017-10-27 16:14:24 · 528 阅读 · 0 评论 -
【C语言】之链表操作
链表相对于数组有很多优点,现在总结一下链表的常用操作。1.单链表添加节点#include#include#includestruct list_node{ int data; struct list_node *next;};typedef struct list_node list_one;list_one *head=NULL; //定义一个全局头节原创 2017-10-06 16:46:16 · 471 阅读 · 0 评论 -
嵌入式面试题总结-C语言知识点相关
一、预处理指令1、C语言预编译指令的作用是什么?有哪些预编译指令,作用分别是什么?预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了原创 2017-07-24 15:19:27 · 863 阅读 · 0 评论 -
C语言常见的排序算法
(1)直接插入排序思路:将待插入的数与有序区的数从右到左依次比较。#include void insort(int s[], int n) /*自定义函数isort*/{ int i, j; for (i = 2; i <= n; i++) /*数组下标从2开始,0做监视哨,1一个数据无可比性*/ { s[0] = s[原创 2017-07-23 14:42:36 · 471 阅读 · 0 评论 -
C语言程序案例
(1)求10!比较简单的程序,主要是实现的思路和代码量。如程序中使用return来中断函数。基于while的用法。#includemain(){ int i=2,n=10; /*定义变量i,n为基本整型并为i赋初值2*/ float fac=1; /*定义fac为单精度型并赋初值1*/ /*使用scanf函数获取n的值*/ if(n==0||n=原创 2017-07-21 19:54:39 · 604 阅读 · 0 评论 -
C语言补充学习
(1)static修饰的局部变量声明静态局部变量:在静态存储区分配存储单元,整个程序运行期间都不释放。而动态局部变量,调用结束后立刻释放。#include int f( int a) { auto b = 0; static c = 3; b= b + 1; c= c+ 1; return ( a+ b+ c) ; }原创 2017-05-13 20:17:52 · 579 阅读 · 0 评论 -
C语言及ARM中堆栈指针SP设置的理解与总结
1.首先来看什么是栈,百度这么说:栈是一种特殊的线性表,是一种只允许在表的一端进行插入或删除操作的线性表。表中允许进行插入、删除操作的一端称为栈顶。表的另一端称为栈底。栈顶的当前位置是动态的,对栈顶当前位置的标记称为栈顶指针。当栈中没有数据元素时,称之为空栈。栈的插入操作通常称为进栈或入栈,栈的删除操作通常称为退栈或出栈。客栈,即临时寄存的地方,计算机中的堆栈主要用来保存临时数据,局部原创 2017-03-31 22:31:37 · 24465 阅读 · 0 评论 -
C语言struct和typedef struct的区别
学习javaJNI的时候见到了如下代码:#if 0typedef struct { char *name; /* Java里调用的函数名 */ char *signature; /* JNI字段描述符, 用来表示Java里调用的函数的参数和返回值类型 */ void *fnPtr; /* C语言实现的本地函数 */} JNI原创 2017-02-16 17:49:41 · 1412 阅读 · 0 评论 -
C语言结构体(Struct)
数组(Array),它是一组具有相同类型的数据的集合。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:struct 结构体名{ 结构体所包含原创 2017-02-16 15:48:11 · 2157 阅读 · 3 评论 -
指向指针的指针
一. 回顾指针概念:让我们先回顾一下指针的概念吧!当我们程序如下申明变量:short int i;char a;short int * pi;程序会在内存某地址空间上为各变量开辟空间,如下图所示。图中所示中可看出:i 变量在内存地址5的位置,占两个字节。a变量在内存地址7的位置,占一个字节。pi变量在内存地址9的位置,占两个字节。(注:pi 是指原创 2017-02-15 20:54:41 · 312 阅读 · 0 评论 -
函数参数的传递
1. 考题一:程序代码如下:Exchg1(int x, int y) { int tmp; tmp=x; x=y; y=tmp; printf(“x=%d,y=%d\n”,x,y)}main(){ int a=4,b=6; Exchg1 (a,b) ; printf(“a=%d,b=%d\n”,a,b)}输出的结果:原创 2017-02-15 20:10:23 · 311 阅读 · 0 评论 -
指针与数组名
1. 通过数组名访问数组元素看下面代码int i,a[]={3,4,5,6,7,3,7,4,4,6};for (i=0;i{ printf ( “%d”, a[i] );}很显然,它是显示a 数组的各元素值。我们还可以这样访问元素,如下int i,a[]={3,4,5,6,7,3,7,4,4,6};for (i=0;i{ printf ( “%d原创 2017-02-15 15:38:11 · 342 阅读 · 0 评论 -
变量的内存实质
1.先来理解C语言中变量的实质要理解C指针,我认为一定要理解C中“变量”的存储实质,所以我就从“变量”这个东西开始讲起吧!先来理解理解内存空间吧!请看下图: 内存地址→ 6 7 8 9 10 11 12 13-------------------------------------------------原创 2017-02-15 15:10:44 · 392 阅读 · 0 评论 -
C语言的代码内存布局
一个程序本质上都是由 BSS 段、data段、text段三个组成的。这样的概念在当前的计算机程序设计中是很重要的一个基本概念,而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题。内存布局由以下3个部分组成:1)BSS 段 BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS原创 2017-02-09 22:51:17 · 355 阅读 · 0 评论