C语言
长安1001
这个作者很懒,什么都没留下…
展开
-
动态库和静态库区别?优缺点?---》嵌入式简单说
动态库和静态库区别?优缺点?区别?三点1.命名方式不同:静态库libxxx.a:库名前加”lib”,后缀用”.a”,“xxx”为静态库名。动态库libxxx.so:库名前加”lib”,后缀变为“.so”。2.链接时间不同:静态库的代码是在编译过程中被载入程序中。 动态库的代码是当程序运行到相关函数才调用动态库的相应函数3.链接方式不同:静态库的链接是将整个函数库的所有数据在编译时...原创 2020-02-26 20:06:18 · 1668 阅读 · 0 评论 -
x=x+1 , x+=1 , x++ 哪个效率高?---》嵌入式简单说
x=x+1 , x+=1 , x++ 哪个效率高?做面试题t突然看到了这个题,挺有意思的,题目不难,简单说一下考点:对编译器工作原理的理解面试官大佬们就想考察我们这个知识!!!答案:x++效率最高x=x+1最低,因为它的执行过程如下:(1)读取右x的地址。(2)x+1.做加1操作(3)读取左x的地址。(4)将右值传给左边的x(编译器并不认为左右x的地址相同)。x+=1其次,其执...原创 2020-02-25 12:01:47 · 771 阅读 · 0 评论 -
C语言修饰符总结,register、const、static、volatile、auto、extern等修饰符
C语言修饰符总结,register、const、static、volatile、auto、extern等修饰符register 修饰符register,寄存器变量,告诉编译器它所声明的变量在程序中使用的频率非常高,请编译器尽量将此变量放在寄存器中,这样程序执行速度更快。但实际上编译器不一定这么做,可以忽略此选项。register 修饰符的几点注意点:变量必须是 CPU 接受的类型,单个值,...原创 2020-02-03 16:45:24 · 1014 阅读 · 0 评论 -
交换两个变量的值,不使用第三个变量的四种法方
交换两个变量的值,不使用第三个变量的四种法方通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换。代码如下:int a,b;a=10; b=15;int t;t=a; a=b; b=t;这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用。在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员之间的交流,一般情况下碰到交换变量值的问题,...转载 2019-09-13 18:44:08 · 11218 阅读 · 0 评论 -
笔试:请定义一个宏常量SECONDS_PER_YEAR,表示每年有多少秒(不考虑闰年)
请定义一个宏常量SECONDS_PER_YEAR,表示每年有多少秒(不考虑闰年)答案:#define SECONDS_PER_YEAR 60*60*24*365(UL)#define SECONDS_PER_YEAR (60UL * 60UL * 24UL * 365UL)#define SECONDS_PER_YEAR ((unsigned long)(60 * 60 *...原创 2019-09-13 18:04:26 · 1170 阅读 · 0 评论 -
笔试小题目
以下程序的输出结果是#include <stdio.h>int main(){ int x=05;char z = 'a'; printf("%d\n",(x&1)&&(z<'z'));}答案:1分析:(x&1) 101&1=1(z<‘z’) z为‘a’,所以括号里为(‘a’<‘z’),所以也为1最后1&...原创 2019-09-13 17:44:22 · 158 阅读 · 0 评论 -
把字符串以单词为单位逆序输出(指针方法),超详细
给定一个字符串“I love china”,编写程序完成以单词为单位的逆序,如“china love i”,并要求不允许使用第三方变量保存数据,但可以使用辅助指针变量等。#include <stdio.h>void swap(char *head,char *tail) //倒置字符串子函数,参数为字符串的头尾地址{ char t; while(head<tail)...原创 2019-09-12 18:40:45 · 3864 阅读 · 0 评论 -
写一个函数,统计一个int类型的值中有多少位为1
写一个函数,统计一个int类型的值中有多少位为1#include <stdio.h>int tj(int a){ int num=0; while(a) { if((a & 1)==1) num++; a=a>>1; printf("%x\n",a); } return num;}int main(int argc, co...原创 2019-09-12 17:40:53 · 2516 阅读 · 0 评论 -
两个升序数组完成归并,并存入数组c中
已知两个升序数组a、b及空数组c:Int a[] = {1,3,5,7,9,11,13,15,17,19};Int b[] = {2,4,6,8,10,12,14,16,18,20};Int c[20];编写程序将两个数组完成归并,并存入数组c中;#include <stdio.h>int main(int argc, const char *argv[]){ int ...原创 2019-09-12 17:37:06 · 1902 阅读 · 0 评论 -
考察对argc、argv[ ]的理解和指针数组的运用
判断输出结果int main(int argc, char *argv[]){ int i, n = 0; for (i=1; i<argc; i++) { n = 10*n + *argv[i] – ‘0’; } printf(“%d\n”, n);}运行时输入 ./aout 12 345 678输出结果为____B_____。A、123 B、...原创 2019-09-12 17:31:44 · 369 阅读 · 0 评论 -
函数传参(笔试题)
函数传参(笔试题)下列代码写出输出结果 #include <stdio.h> void swap(int *p1,int *p2) { int t; t = *p1; *p1 = *p2; *p2 = t; } ...原创 2019-09-11 17:21:27 · 276 阅读 · 0 评论 -
C语言中,static的作用
C语言中,static的作用(参考得来,仅供自己记录使用)在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容#include...转载 2018-12-06 16:48:30 · 120 阅读 · 0 评论