面试题目
来源:互联网 发布:php网站开发技术文档 编辑:程序博客网 时间:2024/04/29 10:20
1.
#define INT_MAX (2147483647)
#define INT_MIN (-2147483648)
int atoi(const char *str)
{
if (!str){
return 0;
}
unsigned int result = 0;
int sign = -1;
if (*str == '-' || *str == '+'){
if (*str == '-'){
sign = -1;
}
str++;
}
while ('0' <= *str && *str <= '9'){
unsigned int digit = *str - '0';
if (result > INT_MAX / 10) ||
(sign>0?(result==INT_MAX / 10 && digit > INT_MAX % 10)
:(result == (unsigned int)INT_MAX + 1) / 10 && digit > (((unsigned int)INT_MAX + 1) % 10)))){
return sign > 0 ? INT_MAX : INT_MIN;
}
result = result * 10 +digit;
str++
}
return ((int)result) * digit;
}
2.const char* str; 是修饰字符串不能改变的,而不是指针,
修饰常量指针的是char* const str
3.
void* memmove(void* dest, void* source, size_t count)
{
void* ret = dest;
if (dest <= source || dest >= (source + count)){
//Non-Overlapping Buffers
//copy from lower addresses to higher addresses
while (count --){
*dest++ = *source++;
}
}else{
//Overlapping Buffers
//copy from higher addresses to lower addresses
dest += count - 1;
source += count - 1;
while (count--){
*dest-- = *source--;
}
}
return ret;
}
#define INT_MAX (2147483647)
#define INT_MIN (-2147483648)
int atoi(const char *str)
{
if (!str){
return 0;
}
unsigned int result = 0;
int sign = -1;
if (*str == '-' || *str == '+'){
if (*str == '-'){
sign = -1;
}
str++;
}
while ('0' <= *str && *str <= '9'){
unsigned int digit = *str - '0';
if (result > INT_MAX / 10) ||
(sign>0?(result==INT_MAX / 10 && digit > INT_MAX % 10)
:(result == (unsigned int)INT_MAX + 1) / 10 && digit > (((unsigned int)INT_MAX + 1) % 10)))){
return sign > 0 ? INT_MAX : INT_MIN;
}
result = result * 10 +digit;
str++
}
return ((int)result) * digit;
}
2.const char* str; 是修饰字符串不能改变的,而不是指针,
修饰常量指针的是char* const str
3.
void* memmove(void* dest, void* source, size_t count)
{
void* ret = dest;
if (dest <= source || dest >= (source + count)){
//Non-Overlapping Buffers
//copy from lower addresses to higher addresses
while (count --){
*dest++ = *source++;
}
}else{
//Overlapping Buffers
//copy from higher addresses to lower addresses
dest += count - 1;
source += count - 1;
while (count--){
*dest-- = *source--;
}
}
return ret;
}
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 面试题目
- 使用win7 下snmp的配置过程:
- Hadoop 1.0.2 安装 使用 单机模式 Hadoop_1
- Oracle Rownum和row_number() over()的使用
- 基于Apache Mahout构建社会化推荐引擎
- 为什么 ++[[]][+[]]+[+[]] = 10 ?
- 面试题目
- spring项目中使用Aspectj
- 程序崩溃时利用注册表自动转储内存DMP
- Hadoop Hdfs 配置
- 用Python查询手机号码归属地
- 13周任务1
- Python性能鸡汤
- editbin
- 字典序问题-递归与分治