C/C++
C 语言学习之函数 – 求 n 次幂
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include <stdio.h>
/* 函数原型声明 */
int power(int base, int n);
/* 测试 power 函数 */
void main()
{
int i;
for (i = 0; i < 10; ++i)
{
printf("%d %d %d\n", i, power(2, i), power(-3, i));
}
}
/* power 函数: 求底数的 n 次幂; 其中 n >= 0 */
int power(int base, int n)
{
int i, p;
p = 1;
for (i = 0; i <= n; i++)
{
p = p * base;
}
return p;
} |
C 语言学习之统计输入字符的个数
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#include <stdio.h>
/* 统计各个数字、空白符号以及其他字符出现的次数 */
void main()
{
int c, i, nwhite, nother;
int ndigit[10];
nwhite = nother = 0;
for (i = 0; i < 10; ++i)
{
ndigit[i] = 0;
}
while ((c = getchar()) != EOF)
{
if (c >= '0' && c <= '9')
{
++ndigit[c - '0'];
}
else if (c == ' ' || c == '\n' || c == '\t')
{
++nwhite;
}
else
{
++nother;
}
}
printf("digits = ");
for (i = 0; i < 10; ++i)
{
printf(" %d", ndigit[i]);
}
printf(", white space = %d, other = %d\n", nwhite, nother);
} |
悲催的,刚开始连输入 EOF 都不会,最后请教同事,才知道是“Ctrl + z”,然后回车.
关于 Roadsend PHP
什么是Roadsend PHP Roadsend PHP 是 PHP 语言的一个开源实现。它编译 PHP 源码为独立的二进制版本,不再需要解释器。Roadsend Compiler 可以利用 Fast/CGI 构建在线 web 应用程序,利用内嵌的 Web 服务器( MicroServer )构建离线 Web 应用程序,利用 PHP-GTK 构建 GUI 应用程序,以及控制台应用程序。它可以运行于 Linux, Windows (需要使用 mingw), Mac OSX 和 FreeBSD 等系统之上。 Roadsend Compiler 还包含解释、性能分析、分布调试PHP代码的功能。 Roadsend PHP 是完整独立的PHP语言实现和运行时环境,而并非基于PHP的原始实现(使用Zend Engine)。Zend PHP 是非必须的,Roadsend PHP 完全不使用它。 Roadsend PHP compiler 基于GNU General Public License 发布. Roadsend PHP的运行时环境和扩展库基于GNU Lesser General Public License发布。 类似项目 [...]
[学习笔记] 关于 C 语言指针
如果指针 p 指向变量 v, 那么应该有:
|
1 2 |
p == &v;
*p == v; |
成立。 另外,应该有以下表达式成立:
|
1 2 3 4 5 6 7 |
// 表达式1
m = *&n;
// 表达式2
m = n;
//表达式1与表达式2等同。 |
[学习笔记] C 语言中发生隐式数据类型转换的条件
C 语言中发生隐式数据类型转换的条件: A. 当算术表达式或者逻辑表达式的操作数类型不一致时; B. 当赋值运算符右侧的数据类型和左侧数据类型不一致时; C. 当函数调用中的实参与相应的形参的数据类型不一致时; D. 当 return 语句中的表达式的数据类型与函数返回值的数据类型不一致时。
[学习笔记] C语言之 printf 函数用法
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <stdio.h>
int main(void)
{
int i;
float x;
i = 40;
x = 839.21f;
printf("|%d|%5d|%-5d|%5.3d|\n", i, i, i, i); // |40| 40|40 | 040|
printf("|%10.3f|%10.4e|%-10g|\n", x, x, x); // | 839.210|8.3921e+002|839.21 |
return 0;
} |
[学习笔记] C 语言基础之 C 语言基本概念
1. C语言的编译过程:源码->预处理->编译->链接 2. GCC 是最流行的C编译器,它伴随着Linux发行,并且提供其他不同平台的版本。 3. 主函数main是程序的入口函数, 一般情况下,main函数最后会返回整数0,表式程序正常终止。 4. C 语言的注释风格: A. /* comments */ B. // comments (C99标准) 5. int 类型存储的是精确值; float 类型存储的是近似值。 6. C语言变量应该先定义, 后使用。 7. 访问C语言变量前,应该先对其进行初始化/赋值。
[学习笔记] C 语言基础之 C 语言概述
1. C 语言是由贝尔实验室的 Ken Thompson 和 Dennis Ritchie 等人开发 UNIX 操作系统时的副产品。 2. C语言的标准: A. 经典C (K & R) B. C89/C90 C. C99 3. 基于C语言的语言:C++/Java/C#/Perl/PHP等。 4. C语言是一种底层语言、小型语言、包容性语言(自由度高)。 5. C语言优点:高效、可移植性、功能强大、灵活、标准库、与UNIX系统集成。 6. C语言缺点:更容易隐藏错误、可能较难理解、难以修改。 7.高效使用C语言的方法: A. 学习如何规避C语言的缺陷——《C陷阱与缺陷》 B. 使用软件程序使程序更加可靠——lint, bounds checker, leak finder C. 利用现有的代码库 D. 采用一套切合实际的编码规范 E. 避免“投机取巧”和极度复杂的代码 F. 紧贴标准——尽量避免使用C89/C99标准外的特行和函数库
C语言各种数据类型在内存中的字节存储
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
#include <stdio.h>
typedef unsigned char * byte_pointer;
void show_bytes(byte_pointer start, int len)
{
int i;
for(i = 0; i < len; i++)
{
printf("%.2x", start[i]);
}
printf("\n");
}
void show_int(int x)
{
show_bytes((byte_pointer) &x, sizeof(int));
}
void show_float(float x)
{
show_bytes((byte_pointer) &x, sizeof(float));
}
void show_pointer(void * x)
{
show_bytes((byte_pointer) &x, sizeof(void *));
}
void test_show_bytes(int val)
{
int ival = val;
float fval = (float)val;
int * pval = &ival;
show_int(ival);
show_float(fval);
show_pointer(pval);
}
int main()
{
test_show_bytes(3);
return 0;
} |
Code::Blocks 无法 Build / Run 解决方案
今天在家里 Windows 7 电脑上安装了Code::Blocks 10.05,后来发现不能编译运行,点击编译/运行按钮均毫无反应。 编译器设置为 GUI GCC 也不行。郁闷,找了好久,后来发现是因为缺少 mingGW 支持,所以找不到编译器。 原来我下载的Windows安装程序是 codeblocks-10.05-setup.exe,而不是 codeblocks-10.05mingw-setup.exe。前者不包含 mingGW 安装包,而Code::Blocks 的编译器需要由 mingGW 来提供(编译器的具体路径,位于 mingGW 安装路径的 /MinGW/bin 子目录中)。 当然你可以自己下载安装 mingGW 安装。安装完毕后,依次点击 “Settings” – “Compiler and debugger …” 按照下面的截图进行配置 mingGW 路径。当然最好的办法是使用“Auto-detect”按钮进行自动检测。