程序猿之---C语言细节
文章平均质量分 64
以代码的形式分析C语言细节,在注释中给予解释,并给出最终运行截图
进化-evolution
搜索
展开
-
程序猿之---C语言细节31(#define和#undef宏细节、#error、#pragma message("文本信息")、宏定义注释)
#define和#undef宏细节、#error、#pragma message("文本信息")、宏定义注释原创 2014-11-24 22:25:08 · 4089 阅读 · 0 评论 -
程序猿之---C语言细节30(数组和指针操作测试题,你能全答对吗??)
数组和指针操作测试题,你能全答对吗??原创 2014-11-24 16:50:12 · 2268 阅读 · 0 评论 -
程序猿之---C语言细节29(#define宏大小、空结构体大小、柔性数组不知道你见过没)
柔性数组不知道你见过没、#define宏大小、空结构体大小原创 2014-11-23 20:31:11 · 2333 阅读 · 0 评论 -
程序猿之---C语言细节28(const变量初始化、数组大小用const变量细节、const变量与#define宏、volatile修饰)
const变量初始化、数组大小用const变量细节、const变量与#define宏、volatile修饰原创 2014-11-23 19:44:11 · 2597 阅读 · 0 评论 -
程序猿之---C语言细节27(函数无参数时细节、函数默认返回int型证明、return默认还回值、void指针++操作)
函数无参数时细节、函数默认返回int型证明、return默认还回值、void指针++操作原创 2014-11-23 17:41:23 · 3565 阅读 · 0 评论 -
程序猿之---C语言细节26(C语言中布尔类型、continue细节、sizeof举例、strlen举例)
程序猿之---C语言细节26(C语言中布尔类型、continue细节、sizeof举例、strlen举例)原创 2014-11-23 16:58:55 · 1440 阅读 · 0 评论 -
程序猿之---C语言细节25(数据类型取值范围、char细节、浮点数细节)
转自:http://blog.csdn.net/mafuli007/article/details/7325510速查表:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 Bytes)int -2147483648 ~ +2147483647原创 2014-11-17 20:05:44 · 1188 阅读 · 0 评论 -
程序猿之---C语言细节24(段错误、类型提升、sizeof 'A')
主要内容:段错误、类型提升、sizeof 'A'原创 2014-11-12 21:25:17 · 1163 阅读 · 0 评论 -
程序猿之---C语言细节23(cache的特性)
主要内容:cache的特性原创 2014-11-12 20:24:14 · 2358 阅读 · 0 评论 -
程序猿之---C语言细节22(函数返回指针注意事项<悬空指针>、查看进程可以分配的内存大小)
函数返回指针注意事项<悬空指针>、查看进程可以分配的内存大小原创 2014-11-12 20:08:56 · 1090 阅读 · 0 评论 -
程序猿之---C语言细节21(#define和typedef区别、结构体细节)
#define和typedef区别、结构体细节原创 2014-11-12 16:09:14 · 1126 阅读 · 0 评论 -
程序猿之---C语言细节20(符号和有符号之间转换、两数相加溢出后数值计算)
主要内容:无符号和有符号之间转换、两数相加溢出后数值计算#include /* 这个函数存在潜在漏洞 */float sum_elements(float a[], unsigned length) { int i; float result = 0; for(i = 0; i <= length - 1; i++) { result += a[i]; print原创 2014-11-12 14:19:38 · 1173 阅读 · 0 评论 -
程序猿之---C语言细节19(来找茬,由/* */ 引起的注释错误)
来找茬,由/* */ 引起的注释错误,你能找注释的错误在哪里吗?原创 2014-11-11 21:00:58 · 1134 阅读 · 0 评论 -
程序猿之---C语言细节18(一些奇怪表达式)
一些奇怪表达式原创 2014-11-11 20:35:48 · 985 阅读 · 0 评论 -
程序猿之---C语言细节17(求time_t的最大值、strlen求的是长度、malloc分配字符内存细节、switch的中default细节)
C语言细节:求time_t的最大值、strlen求的是长度、malloc分配字符内存细节、switch的中default细节原创 2014-11-11 17:49:11 · 2207 阅读 · 0 评论 -
程序猿之---C语言细节16(看了绝对值,编译类型ANSI C和K&R C类型判断,c编译器类型转换bug的细节)
看了绝对值,不看你就很可能少知道了C语言的一个细节,编译类型ANSI C和K&R C类型判断,c编译器类型转换bug的细节)原创 2014-11-11 16:58:17 · 1730 阅读 · 0 评论 -
程序猿之--C语言细节15(预处理命令细节#error、运算符#和##、__FILE__、__LINE__)
主要内容:预处理命令细节#error、运算符#和##、__FILE__、__LINE__#include /* 包含这个头文件,并不是将其所有函数都链接进程序*/ /* ##运算符 */ #define MK_ID(n) i##n /* 表示将两个记号连接 */ int MK_ID(1), MK_ID(2),MK_ID(3); /* 预处理后变成int i1,i2,i3;*原创 2014-11-08 23:57:48 · 1695 阅读 · 0 评论 -
程序猿之---C语言细节14(字符串数组内存分配细节‘\0’空字符、字符串数组赋值细节、字符串换行连接和下标)
主要内容:字符串数组内存分配细节‘\0’空字符、字符串数组赋值细节、字符串换行连接和下标#include #include #define STR_LEN 80char str[STR_LEN+1]; // 用来储存字符串最多80个字符,则要多分配一个空间存储空字符 // 不分配的话会出现不可预知的结果,c函数库都假设字符串已空字符结束原创 2014-11-07 22:23:50 · 1594 阅读 · 0 评论 -
程序猿之--C语言细节13(二维数组和指针,&*a[i][0]的理解,数组1[e]和e[1]很可能你没见过)
主要内容:二维数组和指针,&*a[i][0]的理解#include #define NUM_ROWS 10#define NUM_COLS 10int main(int argc, char **argv){ int a[NUM_ROWS][NUM_COLS], *p, i = 0; // a理解为指向整数指针的指针 即int ** int c,原创 2014-11-07 20:09:20 · 1643 阅读 · 0 评论 -
程序猿之---C语言细节12(指针和数组细节,"//"的可移植性说明)
主要内容:指针和数组细节,"//"的可移植性说明#include int main(int argc, char **argv){ int a[10]={1,2,3,4,5,6,7,8,9,0},*p;#if 0 /* 按移植性来说,在《c语言程序设计--现代方法》指出要用当前注释方法,而不是// 因为一些编译可能不支持 */ // 错误举例 while(*原创 2014-11-07 18:17:46 · 972 阅读 · 0 评论 -
程序猿之---C语言细节11(数组下标越界后测试、数组下标中“ ,”运算符,副作用)
主要内容:数组下标越界后测试、数组下标中“ ,”运算符,副作用#include int main(int argc, char ** argv){ int a[2]={1,2},b[2] = {3,4};//输出未知值 int i = 0; printf("%d\n",b[0,2]); //逗号为一种运算符,b[0,2]被当成b[2],在这里b[2]是超出原创 2014-11-07 16:10:40 · 1321 阅读 · 0 评论 -
程序猿之---C语言细节10(++操作很可能你会出错)
主要内容:++操作细节#include <stdio.h>int main(int argc, char** argv){ int t1 = 2, t2 = 0; //t2 = t1++ + t1++; // 在语句结束后才执行两个++,结果t2 = 4 t2 = t1++ > 0? t1++:t1; // 这里直接在?判断完之后执行了一次++操作,结果t2 = 3 printf("t2 = %d\n",t2);原创 2014-11-06 22:35:03 · 1092 阅读 · 0 评论 -
程序猿之---C语言细节9(宏定义、max(a,b)宏定义细节、大小端判断、(int&)a什么意思)
主要内容:宏定义、max(a,b)宏定义细节、大小端判断、(int&)a什么意思#if 1 #include // 注意空格 #define F (x) ((x) - 1) // F代表后面#define F(x) ((x) - 1) // F(x)代表后面// 经典的笔试题宏定义求最大值//#define max(a,b) a>b?a:b //这个原创 2014-11-04 16:06:47 · 4921 阅读 · 0 评论 -
程序猿之---C语言细节8(函数参数传递、声明)
主要内容:函数参数传递、声明等细节#include int ff(); // 1、当函数参数列表中没有char、short、float类型时(即限于int、double类型可以省略),函数声明中可以省略参数类型说明, //但是定义中不能省略参数类型 // 2、声明时可以省略参数名字,如int ff(int); 只说明类型 int m原创 2014-11-04 13:56:13 · 1151 阅读 · 0 评论 -
程序猿之---C语言细节7(检测两个整型相加是否溢出)
主要内容:检测两个整型相加是否溢出#include #include int main(int argc, char *argv[]){ /* * a和b为非负整型变量,检测a+b是否会“溢出” */ // INT_MAX=2147483647 int a=123456789,b=2147483000; /* 方法一: if(a+b原创 2014-11-03 23:21:28 · 1852 阅读 · 0 评论 -
程序猿之---C语言细节6(数组参数、数组越界、编译器内存分配)
主要内容:数组参数、数组越界、编译器内存分配原创 2014-11-03 22:42:36 · 1283 阅读 · 0 评论 -
程序猿之---C语言细节5(字符串内存分配、合并两个字符串)
主要内容:字符串内存分配、合并两个字符串#include #include int main(int argc, char *argv[]){ /* * 字符串操作:内存分配 * 字符串s和t,希望将这两个字符串连接成单个字符串r */ char* s = "abc"; char* t = "def"; // 方法一: 缺点:1、不能确定r指向何处;2、同原创 2014-11-03 21:55:15 · 1815 阅读 · 0 评论 -
程序猿之--C语言细节4(数组及指针操作)
主要内容:数组及指针操作原创 2014-11-03 21:27:38 · 807 阅读 · 0 评论 -
程序猿之--C语言细节3(i++、 交换两个值得另一种方法、三目运算符处理细节)
主要内容:i#include int main(int argc, char* argv[]){ printf("Hello World!\n"); int i = 7; printf("%d\n",(i++)*(i++)); //输出49,i的值要在当前表达式运算完成之后才处理 printf("%d\n",i); //输出9 //交换a和b的值一种方法 in原创 2014-11-03 20:57:47 · 1475 阅读 · 0 评论 -
程序猿之---C语言细节2(“ ; ”符号有无细节、符号优先级、break)
主要内容:#include struct test{ int a; int b; int c;} // 这里也是存在一个有无 " ; " 的问题,没有的话编译器不报错, // 编译在struct结构体当成函数的返回类型,仅限后面是函数的情况下, // 当然这个情况限于func()函数没有在调用前声明,如果把这几段程序放在m原创 2014-11-03 20:39:36 · 1204 阅读 · 0 评论 -
程序猿之---C语言细节1(==与=、函数指针、数组字符串printf、int ((b));、char b =‘abcd’)
#include int main(int argc, char *argv[]){ char c; int ((b)) = 1; // 在求值时((b))是整型,则b也是整型,如函数int b(); 表达式b()求值结果为整型 /* 引申如int *ff(); int (*ff)(); ()优先级高于* , 第一个为函数ff,返回int型指针 * 第二个为ff函数指针,原创 2014-11-03 19:47:00 · 1773 阅读 · 0 评论