c语言字符串数组分配没错,【字符串数组面试题】面试问题:C语言基础小结… - 看准网...
26. 位段:指定结构体中成员变量所占的位数(以位的形式紧凑存储)
unsigned char/int aaa:1
这里只能是unsigned char/int类型
27. 指针数组:int *p[10]
数组指针:int (*p)[10]
指针数组:首先是个数组,该数组的每个元素都是指针;
数组指针:首先是个指针,这个指针指向一个数组;
28. 逗号运算符,逗号表达式,又称顺序求值运算符。
从左往右计算,整个表达式的值是最后一个表达式的值,逗号运算符的优先级最低。
表达式1,表达式2,表达式3……表达式n
从表达式1开始计算,直到表达式n,最终的值为表达式n的计算结果。
29. 二维数组a[m][n]表示有m行n列,每一行都是一个一维数组,每个一维数组里都有n个元素。
30. 在C语言中,当一维数组作为函数形参时,编译器总是把它解析成一个首元素首地址的指针。
31. 无法把一个指针变量本身传递给函数;
32. 函数指针:
char fun(int t){return ‘A’;}
int main()
{
char (*p)(int); /*定义一个指针,它指向一个形参为int形的,返回值为char形的函数*/
p=fun;
return 0;
}
33. 堆(heap):由malloc系列函数分配,空间大,没释放之前一直存在,直到程序结束或由free释放;
栈(堆栈)stack:保存局部变量,只在函数内部有效,函数结束时就自动释放,效率高,空间有限
全局区(静态区):保存自动全局变量和static变量(包括static全局和局部变量),在整个程序生命周期内都存在。
34. 断言assert
#include
void assert( int expression );//这是一个宏,而不是函数;
assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行;
可以用在函数开始处检验传入参数的合法性;
不能使用改变环境的语句或改变变量的语句;
每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败;
35. 内存分配和释放函数
void *malloc(size_t size)内存分配函数:向内存申请堆空间,申请成功则返回开始地址,失败返回NULL。返回的空间没有被清空。
void *realloc(void *ptr,size_t size)向内存归还旧空间,申请一片新空间,并且将旧空间中的数据复制到新空间中,但增加的空间不清零;
void *calloc(size_t nmenb,size_t size)向内存申请堆空间,给有nmenb个元素,每个元素大小为size的数组使用,并且清零;
void free(void *ptr)释放由以上三个函数申请的堆空间;
以上4个函数均在中
36. void *memset(void *s, int c, size_t n)把指针s所指向的空间里的n个字节设置为值c,在中;
37. 用malloc申请0字节的空间,返回的不是NULL指针,而是一个正常的地址,但此地址的空间无法使用。
38. 在free之后,建议把指针设置为NULL。
39. 不用全局和局部变量,不用库函数写my_strlen()函数
int my_strlen(char *p)
{
assert(p!=NULL);
return (*p!=’\0’)?(1+my_strlen(++p)):0;
}
40. 两个整数相除,结果在横轴上向0点的方向取整;
-3/-2=1
-2/-3=0
-3/2=-1
-2/3=0
3/2=1
2/3=0
41. 两个正数求余运算,运算结果的符号位和被求余的数符号相同。
求余运算只能在整数之间,不能是浮点数(编译会出错)。
-3%2=-1
3%(-2)=1
2%(-3)=2
(-2)%3=-2
42. 按位取反运算符~
~a=-a-1
~0=-1
~1=-2
43. 左移运算符<<
右边的空位补0
右移运算符>>
左边空位补符号位
44. 异或运算符^(a^b,a和b相同则结果为0,不同就为1):
1^1=0
1^0=1
0^1=1
0^0=0
///
与运算符&(a&b,a和b中有一个为0,结果就是0;只有a和b都是1,结果才为1):
1&1=1
1&0=0
0&1=0
0&0=0
///
或运算符|(a|b,a和b中有一个为1,结果就是1;两个都不是1,结果就是0):
1|1=1
1|0=1
0|1=1
0|0=0
以上三个运算符都是做位运算!
45. 一道笔试题
int a=1;
int b=2;
a=a^b;
b=a^b;
a=a^b;
运算结果刚好是a和b的值交换,如果a=b,则结果为0
46. 正数a|正数b=a+b
47. 对齐补齐
一个变量的地址一般是这个变量所占字节数的倍数
补齐:补到结构体中成员变量所占的最大字节数的倍数
48. 字符串操作系列函数
strlen(a)计算字符串长度,不包括’\0’
strcpy(a, “abcd”)将字符串复制到字符串数组a中(覆盖原有)
strcat(a, “abcd”)将字符串追加到a中
strcmp(a,”abcd”)比较a和”abcd”是否相等,返回0或非0
49. fun()表示该函数形参的类型和个数都不定,在调用它时,可以传递任何形参给它,只是传过去没用;
fun(void)表示该函数不允许传递任何形参给它,否则编译出错。
50. 可变形参
#include
int fun(int cnt, …)
{
va_list ls; //定义可变长参数表
va_start(ls, cnt); //用可变长参数表ls保存参数cnt之后的那些参数
va_arg(ls, int); //从参数表中取出一个int型的参数,并且将指针指向下//一个
va_end(ls); //释放可变长参数表
}
这些都是宏,不是函数。
51. 判断一个浮点数是否为0
float f;
if(f>=-0.00001&&f<=0.00001)
{
f等于0;
}
else
{
f不等于0;
}
c语言字符串数组分配没错,【字符串数组面试题】面试问题:C语言基础小结… - 看准网...相关推荐
- js 跳转到指定位置 高德地图_【高德字符串JavaScript面试题】面试问题:高德地图Js … - 看准网...
申请JSAPI的开发者key 申请地址:http://lbs.amap.com/dev/key 引入高德地图JavaScript API文件: 创建地图容器 在页面body里你想展示地图的地方创建一个 ...
- c语言面试题东软,【东软集团程序员Java东软集团C语言面试题】面试问题:东软java面… - 看准网...
当天我很早的就来到面试地点,其实我们还有课<算法分析与设计>,但是我们逃了吧,逃课的不止我一人,还有王凯,还有唐建军,王川,还有我的好友刘冠春.他们逃课也许是为了对面试做一个充分的准备吧, ...
- c语言开发ETL,【ETL开发工作内容|工作职责|ETL开发做什么】-看准网
工具应用 ETL工具的典型代表有:Informatica.Datastage.OWB.微软DTS.Beeload.Kettle.久其ETL-- 开源的工具有eclipse的etl插件:cloveret ...
- 浅谈C语言动态内存分配及柔性数组
文章目录 前言 1.动态内存的简单介绍 1.动态内存分配是什么? 2.为什么存在动态内存分配? 3.动态内存分配具体方法 1.动态内存函数 2.动态内存注意事项 2.经典面试题分析 3.C/C++程序 ...
- c语言指针数组分配内存,指针数组数组指针的分配内存及函数参数 C语言版
最近写代码总是被基础知识卡住,十分耽误时间,今天又卡住了.所以下定决心一定要弄清楚这个问题,然后不好的是网上的资料总是解决的并不清楚,总是在纠结什么是指针数组什么是数组指针,看了<C缺陷和陷阱& ...
- c语言 指针 字符串 回文 strcmp,【查找字符串面试题】面试问题:C语言指针题集… - 看准网...
1. 若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是(). A. p=q; B. *p=*q; C. a=*q; ...
- c语言fwrite写字符串数组,【字符串数组面试题】面试问题:C语言 文… - 看准网...
1.文件中存储的学生信息按照班级编号升序排列,每个班级的人数可以不同,要求读取文件中所有学生的成绩,计算每个班级的平均成绩,将班级编号和平均成绩输出. 存储格式: 145811 fuxin ...
- C语言 编程判断花瓶是谁打碎的,【数组编程面试题】面试问题:C语言解决是谁… - 看准网...
逛贴吧偶遇一道很新颖的C语言编程题,想到自己的C语言荒废了很久,便决定花点时间解决一下练练手. 具体题目如下: 实验题目(4)[见实验教材实验五的题目6]:编写程序exp5_6.c,请判断花瓶是谁打碎 ...
- c语言 万年历问题,【数组函数面试题】面试问题:万年历的C语言… - 看准网
万年历_源码 主函数所在源码 #include #include #include int GetWeek(int year,int month,int day);//求今天是周几.周四就返回 4 . ...
最新文章
- 搭建 VUE + NODE.JS + ElementUI 学习过程中问题总结
- C++_泛型编程与标准库(三)
- jquery获取元素在文档中的位置信息以及滚动条位置(转)
- (11)zabbix item types监控类型
- layDate控件的使用
- WEB前端学习五 js什么是引用类型
- java反射减少servlet_利用java 反射机制来实现一个servlet处理多种请求
- asp.net 得到上一页地址
- FFT:从入门到沉迷
- Node.js——异步上传文件
- Jenkins持续集成环境常见问题分析及解决
- 实验1 JavaEE开发环境配置与基础练习(JSP)
- linux里的.mht是什么文件,mht文件扩展名,mht文件怎么打开?
- JS数据结构与算法-队列结构
- t32 emulation debug port failed
- 考试系统服务器 倒计时,考试系统倒计时实现
- matlab井函数,用MATLAB函数解承压含水层完整井非稳定流问题
- 项目研发管理经验交流
- 百度知道引流有哪些方法?一个互动式的疑问解答
- 直指行业痛点 玩法创新才是游戏占领市场的根基