找到 1356 篇文章 关于 C

C 语言中的左值和右值

Nitya Raut
更新于 2019年7月30日 22:30:25

8K+ 阅读量

左值 (locator value) 表示占据内存中某个可识别位置的对象(即具有地址)。右值是通过排除法定义的。每个表达式要么是左值,要么是右值,因此,右值是不表示占据内存中某个可识别位置的对象的表达式。例如,赋值语句期望其左操作数为左值,因此以下语句有效:int i = 10; 但以下语句无效:int i; 10 = i;这是因为 i 在内存中具有地址,是左值。而 10 没有可识别的内存位置,因此是右值。... 阅读更多

C 语言中的 fork()

Vrundesha Joshi
更新于 2019年7月30日 22:30:25

3K+ 阅读量

在本节中,我们将了解 C 语言中的 fork 系统调用。此 fork 系统调用用于创建新进程。这个新创建的进程称为子进程。创建另一个子进程的当前进程称为父进程。子进程使用与父进程相同的程序计数器、CPU 寄存器、相同的父进程使用的文件。fork() 不接受任何参数,它返回整数值。它可能返回三种类型的整数值。负数:当子进程创建失败时返回负数零值:它为... 阅读更多

C/C++ 中的断言

Jennifer Nicholas
更新于 2019年7月30日 22:30:25

367 阅读量

在这里,我们将了解 C/C++ 中的断言。C 库宏 void assert(int expression) 允许将诊断信息写入标准错误文件。换句话说,它可以用于在 C 程序中添加诊断信息。以下是 assert() 宏的声明。void assert(int expression);此 assert() 的参数为 expression - 这可以是变量或任何 C 表达式。如果 expression 计算结果为 TRUE,则 assert() 不执行任何操作。如果 expression 计算结果为 FALSE,则 assert() 会在 stderr(标准错误流,用于显示错误消息和诊断信息)上显示错误消息并中止程序执行。示例代码#include ... 阅读更多

C 语言中的多线程

Nitya Raut
更新于 2019年7月30日 22:30:25

21K+ 阅读量

多线程是多任务处理的一种特殊形式,而多任务处理是允许计算机同时运行两个或多个程序的功能。一般来说,多任务处理有两种类型:基于进程和基于线程。基于进程的多任务处理处理程序的并发执行。基于线程的多任务处理处理同一程序片段的并发执行。多线程程序包含两个或多个可以并发运行的部分。程序的每个部分都称为线程,每个线程定义一个单独的执行路径。C 语言本身并不支持多线程应用程序。相反,它完全依赖于... 阅读更多

在 C 语言中不使用任何头文件打印“Hello World”

Vrundesha Joshi
更新于 2019年7月30日 22:30:25

1K+ 阅读量

通常,我们在 C/C++ 语言中使用头文件来访问内置函数,如 int、char、字符串函数。函数 printf() 也是一个内置函数,它在“stdio.h”头文件中声明,用于在控制台上打印任何类型的数据。以下是在 C 语言中不使用头文件打印的示例,示例代码int printf(const char *text, ...); int main() {    printf( "Hello World" );    return 0; }输出Hello World在上面的程序中,我们通过声明 printf() 函数,在程序中不使用任何头文件就打印了“Hello World”。printf() 的声明为... 阅读更多

在 C/C++ 中同时执行 if 和 else 语句

Jennifer Nicholas
更新于 2019年7月30日 22:30:25

167 阅读量

在本节中,我们将了解如何在 C 或 C++ 代码中同时执行 if 和 else 部分。此解决方案有点棘手。当 if 和 else 一个接一个地执行时,就像执行没有 if-else 的语句一样。但在这里我们将看到如果它们存在,如何一个接一个地执行它们。示例代码#include using namespace std; int main() {    int x = 10;    if(x > 5)   {       lebel_1: cout

在 C 语言中实现自己的 itoa()

Nitya Raut
更新于 2019年7月30日 22:30:25

1K+ 阅读量

在本节中,我们将了解如何将整数转换为字符串。逻辑非常简单。在这里,我们将使用 sprintf() 函数。此函数用于将某些值或行打印到字符串中,而不是在控制台中。这是 printf() 和 sprintf() 之间的唯一区别。这里第一个参数是字符串缓冲区。我们希望将数据保存在哪里。输入:用户将输入一些数值,例如 42输出:此程序将返回该数字的字符串等效结果,例如“42”算法:步骤 1:将数字作为参数步骤 2:创建一个空... 阅读更多

C 语言中的 switch case 语句

Nitya Raut
更新于 2019年7月30日 22:30:25

1K+ 阅读量

switch 语句允许将变量与其值列表进行相等性测试。每个值称为一个 case,并且正在切换的变量会针对每个 switch case 进行检查。C 编程语言中 switch 语句的语法如下:switch(expression) {    case constant-expression :       statement(s);       break; /* 可选 */    case constant-expression :       statement(s);       break; /* 可选 */       /* 可以有任意数量的 case 语句 */    default : /* 可选 */       ... 阅读更多

C 语言中的堆溢出和栈溢出

karthikeya Boyini
更新于 2019年7月30日 22:30:25

6K+ 阅读量

堆溢出堆用于存储动态变量。它是进程内存的一个区域。malloc()、calloc()、resize() 所有这些内置函数通常用于存储动态变量。堆溢出发生在 -A) 如果我们分配大量动态变量 -int main() {    float *ptr = (int *)malloc(sizeof(float)*1000000.0)); }B) 如果我们连续分配内存并且在使用后不释放它。int main() {    for (int i=0; i

如何在 C/C++ 中不使用 ++ 或 + 或任何其他算术运算符来添加两个数字?

Vrundesha Joshi
更新于 2019年7月30日 22:30:25

236 阅读量

在本文中,我们将了解如何在不使用 +, ++, -, 或 -- 等算术运算符的情况下添加两个数字。要解决此问题,我们可以使用二进制加法器逻辑来解决它们。在这种情况下,我们设计了半加器和全加器。这些加法器可以添加一位二进制数。通过级联多个加法器,我们可以创建电路来添加更大的数字。在该加法器中,我们对数字执行了异或运算,然后对于进位,我们执行了与运算逻辑。这些功能在此处实现以添加两个数字。示例代码 实时演示#include using namespace std; int ... 阅读更多

广告