C语言
fly__chen
勿忘初心,别让写博客失去它该有的意义。
展开
-
#include int inc(int a) { return(++a); } int multi(int*a,int*b,int*c) { return(*c=*a**b); }
#include <stdio.h>int inc(int a){ return (++a);}int multi(int * a, int * b, int *c){ return (*c = *a * *b);}typedef int(*FUNC1)(int in); //此时FUNC1变成了指向函数的指针typedef int(FUNC2)(int *,int *,i原创 2016-10-05 23:53:45 · 5393 阅读 · 1 评论 -
getchar()和putchar()详解
getchar()原创 2016-11-16 15:16:21 · 4135 阅读 · 1 评论 -
heap和stack的区别
heap和stack的区别:原创 2016-11-02 18:34:47 · 399 阅读 · 0 评论 -
C语言实现程序跳转到绝对地址0x100000处执行
嵌入式笔试题:想让程序跳转到绝对地址0x100000处执行,该如何做?网上看到有如下答案:((void()(void))0x100000)();经过在VC++6.0和Linux gcc4.4.3下测试,均不能通过编译。VC++6.0报错:error C2100: illegal indirectionGCC报错:error: void value not ignored as it ought to转载 2016-11-22 20:37:39 · 1459 阅读 · 0 评论 -
(笔记)运算符和表达式
C语言的运算符:(1)算术运算符 (+ - * / %) // % 只能对int型数据操作(2)关系运算符 (> < == >= <= !=)(3)逻辑运算符 (! && ||)(4)位运算符 (& | ~ ^ << >>)(5)赋值运算符 (=及其扩展赋值运算符)(6)条件运算符 (? :)(7)逗号运算符 (,)(8)指针运算符 (* &)(9)求字节数原创 2016-10-21 19:47:03 · 600 阅读 · 0 评论 -
(笔记)不同数据间的混合运算
不同数据类型间的混合运算原创 2016-10-21 19:21:56 · 1406 阅读 · 0 评论 -
(笔记)从一道笔试题看字符型数据
int main(){ char a[1000]; int i; for(i = 0; i<1000;i++) { a[i] = -1 – i; } printf(“%d\n”,strlen(a)) ; return 0; }原创 2016-10-20 14:34:07 · 628 阅读 · 0 评论 -
(笔记)浮点型数据
浮点型数据原创 2016-10-20 10:21:41 · 892 阅读 · 0 评论 -
(笔记)char * p与 char p[ ] 的区别
char * p与 char p[ ]区别。char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8原创 2016-10-10 13:43:59 · 3538 阅读 · 0 评论 -
(笔记)原码、反码和补码的表示方法
笔记原创 2016-10-19 13:49:20 · 1518 阅读 · 0 评论 -
(摘抄笔记)从一道面试题看struct中的内存对齐
结构体 内存对齐原创 2016-10-03 09:40:36 · 903 阅读 · 1 评论 -
gets()和puts()函数分析
笔记原创 2016-10-18 11:20:31 · 9658 阅读 · 0 评论 -
有关GetMemory()问题的思考
昨天笔记遇到这些个题目,只知道错在哪里,但不知道真正程序运行后的结果会是怎么样。回来查一下做个笔记。例1.void GetMemory( char *p ){ p = (char *) malloc( 100 );}void Test( void ) { char *str = NULL; GetMemory( str ); strcpy( str, "hello world" )原创 2016-10-29 10:52:53 · 451 阅读 · 0 评论 -
memcpy和strcpy区别
strcpy和memcpy原创 2016-10-25 10:59:38 · 1890 阅读 · 0 评论 -
理解复杂的C/C++声明
介绍 : 曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的 C/C++声明:我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地 理解任何C/C++声明的“右左法则”。需要强调一下的是,复杂的C/C++声明并不是好的编程原创 2016-10-23 21:01:17 · 240 阅读 · 0 评论 -
(笔记)位运算
1.按位与 ── &(1)格式:x&y (2)规则:对应位均为1时才为1,否则为0。例如,3&9=1: 0011 & 1001 ----------- 0001 (3)主要用途:取(或保留)1个数的某些位,其余各位置0。 2.按位或 ── |(1)格式:x|y原创 2016-10-23 21:23:06 · 451 阅读 · 0 评论 -
字符串笔试题
1.编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,及将句子中的单词位置倒置,而不改变单词内部结构.#include <stdio.h>#include <string.h>void reserve( char * str , int len){ int i; char temp; for ( i = 0; i原创 2016-10-25 21:43:20 · 645 阅读 · 0 评论 -
带参数的main函数和命令行参数
1.说明: 当系统调用主函数时,系统也可将参数 (命令行) 传给主函数,这个参数可以认为是 main函数的形式参数。2.格式: main(int argc, char *argv[ ]) 规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,(由于main函数不能被其它函数调用,那么,在何处把实参值赋予main函数的形参呢? 实际上,m原创 2016-10-27 09:21:14 · 2594 阅读 · 0 评论 -
内联函数和宏定义的区别
内联函数和宏定义的区别原创 2016-11-02 18:15:36 · 232 阅读 · 0 评论 -
exit和return的区别
exit和return的区别原创 2016-11-08 08:36:12 · 210 阅读 · 0 评论 -
(总结)typedef和# define的用法和区别
typefef 和 #define 用法以及区别原创 2016-10-05 16:41:25 · 730 阅读 · 0 评论 -
如何以最快的速度计算出一个二进制数中1的个数
题目:如何以最快的速度计算出一个二进制数中1的个数 重点在于,这里有十亿或万亿个int数字,怎样做才能优化算法呢?解答:统计一个字节序列中1的个数,我首先想到的是最简单,把这个数每次右移一位,然后与0x01逻辑与进行统计,相当于总共将真个字节序列遍历了一遍。然而仔细想想,一个十亿或万亿的字节序列,能存到一个数(或称为变量)中?必然不可以,因此这是陷阱所在。while(num)原创 2016-10-27 16:24:20 · 5558 阅读 · 1 评论 -
sizeof 与 strlen 比较
面试笔记原创 2016-11-02 18:11:31 · 95 阅读 · 0 评论 -
C语言中可变参数函数实现
C99版本加入可变参数列表概念。用于实现函数参数的变长传递。#include<stdarg.h>中定义了相关方法。typedef struct{ char *ao; //起始地址 int offset;//相对偏移量}va_list;控制函数: void va_start( va_list arg_ptr, prev_param ); //创建 type va_arg(原创 2016-10-27 09:41:03 · 708 阅读 · 0 评论 -
strtok
原型:char *strtok(char *s, char *delim); 功能:分解字符串。s为要分解的字符串,delim为分隔符字符串。 说明:首次调用时,s必须指向要分解的字符串,随后调用要把s设成NULL。 strtok在s中查找包含在delim中的字符并用NULL(‘\0’)来替换,直到找遍整个字符串。 返回指向下一个标记串。当没有标记串时则返回空字符NULL。 /* 注意返回原创 2017-06-20 16:36:01 · 516 阅读 · 0 评论