C语言学习
laola的故事
这个作者很懒,什么都没留下…
展开
-
指针定义字符串和数组定义字符串的区别
char message[]="Hello";char *message="Hello";这两行代码一样吗? (上次编程,就是这个问题,让我多花了半个小时检查该错误)答案是:不一样当然,两者有区别,也有相同之处相同之处:对两者求strlen()长度一致,都是5。不同之处:(1)存储模型不同数组存储是:每个字母占一个单元格,总共需要6个单元格字符串存储:创建原创 2016-01-16 20:26:19 · 2697 阅读 · 1 评论 -
C语言习题六
编写一个名叫my_strchr的函数,它的原型如下: char *my_strrchr(char const *str, int ch); 这个函数类似于strchar函数,只是它返回的是一个指向ch字符在str字符串中最后一次出现(最右边)的位置的指针。 这道题其实很简单。刚开始我没有像想到利用现有的strchar函数,所以自己想了很多的复杂的方法来解决。然后查看了一下答案,竟然是这样的:c原创 2017-10-15 20:51:19 · 1036 阅读 · 1 评论 -
可变参数列表
基本概念可变参数列表是通过宏来实现的,这些宏定义于stdarg.h头文件,该文件是标准库的一部分。 这个头文件声明了一个类型va_list和三个宏:va_start,va_arg,va_end。 函数首先声明一个va_list类型的变量,它用于访问参数列表的未确定部分。这个变量通过调用va_start来初始化。 为了访问参数,需要使用va_arg,这个宏接受两个参数:va_list变量和参数列原创 2017-10-13 21:59:18 · 326 阅读 · 0 评论 -
C语言题目五
题目1题目:Hermite Polynomials(厄米多项式)是这样定义的: Hn(x)=⎧⎩⎨⎪⎪n<=0:1n=1:2xn>=2:2∗x∗Hn−1(x)−2∗(n−1)Hn−2(x)H_n (x) = \left\{ \begin{array}{c}n<=0: 1 \\ n=1: 2x \原创 2017-10-13 20:58:29 · 398 阅读 · 0 评论 -
C语言习题四
题目1题目:请编写一个函数,它在字符串中进行搜索,查找所有在一个给定字符集合中出现的字符。这个函数的原型应该如下: char *find_char(char const *source, char const *chars); 它的基本想法是查找source字符串匹配chars字符串中任何字符的第一个字符,函数然后返回一个指向source中国第一个匹配所找到的位置的指针。如果source中的所有原创 2017-10-13 11:32:32 · 460 阅读 · 0 评论 -
C语言习题三
题目:请编写函数 unsigned int reverse_bits(unsigned int value); 这个函数的返回值是把value的二进制位模式从左到右变换一下后的值。例如,在32位机器上,25这个值包含下列各个位: 0000 0000 0000 0000 0000 0000 0001 1001 函数的返回值应该是2550 136 832,它的二进制位是:原创 2017-10-10 21:31:16 · 353 阅读 · 0 评论 -
C语言习题一
题目:正数n的平方根可以通过一系列近似值来获得。每个近似值都比前一个更加接近准确值。第一个近似值是1,接下来的近似值则通过下面的公式来获得。 ax+1=ai+nai2a_{x+1}={\frac{a_i+\frac{n}{a_i}}{2}} 编写一个程序,读入一个值,计算并打印出它的平方根。如果你将所有的近似值都打印出来,你会发现这种方法获得准确结果的速度有多快、原则上,这种计算可以永远进行下去原创 2017-10-07 22:02:06 · 598 阅读 · 0 评论 -
C语言和C++语言中关于NULL 的定义
声明一个指针变量并不会自动分配任何内存。 NULL指针就是不指向任何东西的指针。它可以赋值给一个指针,用于表示那个指针并不指向任何职。对NULL指针执行间接访问操作的后果因编译器而异,两个常见的后果分别是返回内存位置零的值以及终止程序。 我声明了一个指针,并赋值为NULL,查看了在VS2013中关于NULL的定义,如下:/* Define NULL pointer value */#ifnde原创 2017-10-09 11:11:02 · 5933 阅读 · 0 评论 -
C 语言之求字符串长度
求字符串长度,我们可以通过库中自带的strlen()函数,也可以通过字符数组来进行计算,还可以通过字符串指针来计算。下面的代码便是通过字符串指针来操作的。/**求字符串长度*/#include<stdio.h>#include<string.h>//求字符串长度int strlen_self(char *string){ int length = 0; if (strin原创 2017-10-09 16:26:17 · 578 阅读 · 0 评论 -
C语言习题二
题目:编写一个函数,从一个字符串中去除多余的空格。函数的原型应该如下: void deblack(char string[]) 当函数发现字符串中如果有一个地方由一个或多个连续的空格组成,就把它们改成单个空格字符串。注意当你遍历整个字符串时要确保它以NUL字符结尾。 思路:遍历字符串,遇到两个空格则处理掉一个空格,字符串长度减1,并且将字符串循环变量设置为从0开原创 2017-10-08 21:15:57 · 371 阅读 · 0 评论 -
C语言基础
编译和运行一般系统中的环境包括翻译环境和执行环境。 翻译阶段 翻译环境简单来说就是将编写的高级程序翻译成目标代码,然后通过连接器进行连接,最后生成目标文件。如以下图示: 执行阶段: (1) 程序的执行必须载入内存。在这个过程中,是操纵系统来完成的。此时,那些不是存储在堆栈中的尚未初始化的变量在这个时候获取值。 (2) 启动程序开始,调用main() 函数 (3) 开始执行程序代码。程原创 2017-09-28 20:18:29 · 1859 阅读 · 0 评论 -
c++ 中复合类型之-引用
周末无事,翻开自己尘封已久的C++,复习下~~~定义引用是为对象起了另外一个名字,引用类型(引用)另外一种类型。 引用并非对象,相反的,它只是为一个已经存在的对象所起的另外一个名字。报错原因 int &refVal2; //报错:引用必须被初始化 int &refVal4 =10; //报错:引用类型的初始值必须是一个对象 double dval =3.14;原创 2017-02-12 14:22:58 · 497 阅读 · 0 评论 -
C语言文件编程题目
题目要求:读取文件file1.txt的内容: 12 34 56 输出到文件file2.txt: 56 34 12 解决思路: (1)首先把文件1中的数据获取到并存储起来; (2)把数据显示到文件2中。 按照该思路,编写代码如下:#include<stdio.h>#include "task.h"#include<stdlib.h>#def...原创 2018-07-04 21:57:34 · 5476 阅读 · 0 评论