![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
初学C记录
如帝眼
这个作者很懒,什么都没留下…
展开
-
实现一个函数:取出一个全路径文件名中的文件名部分。
函数原型如下/* 【in】 pszFullPath 全路径文件名 【out】pazPathName 接受全路径的缓冲区【out】nCount 缓存区大小*/int ExtractFilePath(char *pszFullPath, char *pszPathName, int nCount); ...原创 2018-08-26 14:54:55 · 921 阅读 · 0 评论 -
数组与函数
1.c语言里数组与指针。答:数组名就是数组在内存存放的数组首元素地址。指针变量也可以放数组的首地址数组元素的地址。指针变量可以指向数组或数组元素。指针与数组能够非常和谐的一起工作。 2.为什么在c语言程序中有时要用到&a[MAX]?答:人们习惯通过指针遍历一个数组中的所有元素,例如 for(p=a;p<&a[MAX];++p) { /*do som...原创 2018-01-25 20:39:57 · 405 阅读 · 0 评论 -
有n个人围成圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,最后留下的是原来第几号的那位.
这是刚开始学C语言的经典问题,下面还参考了网上的答案,有三种总结如下: 1.用数组做,数组地址与对应值不变,用另外两个变量对数到3的进行判定;#include<stdio.h> int main(){ int a[100]; int i,n,p=0,q; printf("input number:"); scanf("%d",&...原创 2018-01-27 16:52:11 · 724 阅读 · 0 评论 -
指针
1.出现野指针的后果是什么?答:你的数据会出现危险,存放在堆中的数据,可能会被破坏,用来处理堆的数据结构,也可能会被破坏,甚至操作系统的数据也可能会被修改,甚至有时上述三种破坏情况,都会同时出现。 此后可能发生的事情,取决于,这样亮点,第一,内存中的数据,被破坏的程度有多大,第二,内存中的被破坏的部分还要被使用多少次。2.指针在系统中的纯在。答: (1)系统为指针分配内存空间,...原创 2018-01-27 22:37:05 · 128 阅读 · 0 评论 -
内存管理,预处理,结构体
1.系统内存空间如何分配?答:(1)数据段:bss段,data段,rodata段。 bss段:存放那些没有初始化和初始化为0的全局变量;其只占用运行时的内存空间而不占用文件空间。在整个运行周期bss数据一直存 data段:存放初始化为非0的全局变量;其既占文件空间又占内存空间。在整个运行周期内一直存在。rodata段:在多个进程间共享,提高空间利用率,甚至不占用RAM空间。同...原创 2018-01-29 14:19:05 · 119 阅读 · 0 评论 -
"I am from shanghai"的多种倒序输出方式,“shanghai from am I”
1.指针,遇到空格对单词进行倒序,最后对字符串倒序。#include <stdio.h>#include <string.h>#include <stdlib.h>#define SIZE 5int main(){ char str[]= {"i am from shanghai"}; char *p1 = str; cha...原创 2018-01-30 16:25:17 · 611 阅读 · 0 评论 -
程序员面试问题
1.系统调用与库函数的区别?答:库函数是语言本身的一部分,而系统函数是内核提供给应用程序的接口,属于系统的一部分。函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。用户应用程序访问并使用内核所提供的各种服务的途径即是系统调用。在内核和用户应用程序相交界的地方,内核提供了一组系统调用接口,通过这组接口,应用程序可以访问系统硬件和各种操作系统资源。 1.系统调用是为了方便应用...原创 2018-01-31 15:36:43 · 243 阅读 · 0 评论 -
内存泄漏, 内存空洞(内存碎片)
内存泄漏:在堆空间, malloc/free要分配使用。要是内存分配了我们不释放称为内存泄漏; 内存泄漏多了迟早会出现Out of memory的错误,再分配内存就会失败。淡然释放时也只能释放分配出来的空间,释放无效的内存或者重复释放都是不行的,会造成程序crash。分配多少内存用多少,不管读写,读多了会读到随机数据,写多了会造成随机破坏,这种情况我们称为缓冲区溢出。这是非常严重的,大...原创 2018-01-31 15:56:03 · 2523 阅读 · 0 评论 -
线性表——链表
1.数组长度和线性表长度区别?答:数组的长度是存放线性表的存储空间的长度,存储分配后这个量是一般是不变的。有个别同学可能会问,数组的大小一定不可以变吗? 我怎么看到有书中谈到可以动态分配的一维数组。是的,一般高级语言,比如C.VB、C++都可↓人用编程手段实现动态分配数组,不过这会带来性能上的损耗。线性表的长度是线性表中数据元素的个数,随着线性表插入和删除操作的进行,这个量是变化的。在任意时刻...原创 2018-01-31 22:07:32 · 145 阅读 · 0 评论 -
程序员面试题2
1.关键字const的含意,有什么作用?答:const是一个修饰符,被修饰的对象或者变量是不可修改的,也就是说const可读不可改,const在谁的后面const就修饰谁,如果const在最前面,那么将const后移一位即可,二者是等效的。const一定可以修改吗?const int a = 10;int *p = &a;*p = 8;则此时会有警告但打印a = ...原创 2018-02-02 14:19:24 · 334 阅读 · 0 评论 -
Linux的基本命令的运用
一·文件处理命令1.cat:用于连接并显示指定的一个和多个文件的有关信息。权限:所有用户。 格式:ca【optinns】 文件1 文件2 【options】参数 -n:第一行开始对所有输出行编号 -b:和-n相似,但对于空白行不编号-s:遇到两行以上的空白行就用一行空白行代替 举例:(1)#cat README 在命令行下看一下文件README的内容 ...原创 2018-01-23 16:06:10 · 182 阅读 · 0 评论 -
C语言:栈与队列
1. 栈的优缺点。答:优点:由于栈只允许栈顶进出元素,栈的顺序存储结构很方便,不存在线性表插入和删除时需要移动元素的问题。缺点:需要先确定数组存储空间的大小,万一不够用需要编程手段来扩展数组的容量。2.两个栈共享空间时,栈满的判断?答:top1 + 1 = top2;3.链栈与单链表的关系。答:链栈的栈顶放在链表的头部,此时,单链表的头结点也就没有了意义,通常不需要头结点。...原创 2018-02-04 15:23:19 · 1218 阅读 · 0 评论 -
数据类型初学时发现的问题
1.已经赋值的字符串指针“*str="hello world"”,可以再将“*str="goodbye world"”赋值给他吗?答:不能,错误有二。 (1)不能向常量里写数据。“hello world”是字符串常量,该字符串空间里的常量不能被改变。 (2)指针变量放地址,字符串是以首地址为地址。这里将一个字符串地址想要写到一个字符 的地址里了。 2.局部变量的特点答:...原创 2018-01-23 21:10:51 · 128 阅读 · 0 评论