char ch[]=' i amhandsome';char *p=ch; 问 *(p+2)和*p+2的结果是多少 哪位大神解释一下?

题王网让考试变得更简单

扫码关注题王,更多免费功能准备上线!

计算机程序设计基础(C语言)

1. C语言程序是由构成的。

A)一些可执行语言 B)main函数C)函数 D)包含文件中的第一个函数

2. 是构成C语言程序的基本单位。

A)函数 B)过程 C)子程序 D)子例程

3.C语言可执行程序从开始执行。

A) 程序中第一条可执行语句 B) 程序中第一个函数

C) 程序中的main函数 D) 包含文件中的第一个函数

4.C语言程序从main()函数开始执行,所以这个函数要写在____。

A) 程序文件的开始 B) 程序文件的最后

C) 它所调用的函数的前面 D) 程序文件的任何位置

5. 以下说法中正确的是。

A)C语言程序总是从第一个定义的函数开始执行

B)在C语言程序中,要调用的函数必须在main( )函数中定义

C)C语言程序总是从main( )函数开始执行

D)C语言程序中的main( )函数必须放在程序的开始部分

6. 下列方法中错误的是。

A)主函数可以分为两个部分:主函数说明部分和主函数体。

B)主函数可以调用任何非主函数的其它函数。

C)任何非主函数可以调用其它任何非主函数。

D)程序可以从任何非主函数开始执行。

7.下列关于C语言的说法错误的是。

A) C程序的工作过程是编辑、编译、连接、运行

B) 标识符的命名由英文字母、数字和下划线组成,与字母的大小写无关

C) C程序的三种基本结构是顺序、选择、循环

D) 一个C程序总是从main函数开始执行的

8. 系统默认的C语言源程序扩展名为.C,需经过之后,生成.exe文件,才能运行?

9.下列说法中正确的是。

A)由于C源程序是高级语言程序,因此一定要在TC软件中输入。

B)由于C源程序是由字符流组成的,因此可以作为文本文件在任何文本编辑的软件中输入。

C)由于C程序是高级语言程序,因此输入后即可执行。

D)由于C程序是高级语言程序,因此它是由命令组成的。

大家看看下面几个代码:

两个代码唯一的区别就是定义串s时不同?
对于strrev()函数也出现这个问题,为啥?


因为strtok会修改原来的字符串,去掉第一个分隔之前的东西。
所以要求参数是char *。但是你的第一个程序中,有一个bug:
这么写,就直接不能通过编译了。
记住,常量区的东西是不能修改的。


关键就是这里并没有字符串的拷贝操作,只有地址的拷贝操作,所以要想修改这个字符串的值,你必须把这个字符串的内容拷贝到你的字符串中来,如同在楼上改进的程序中那样。






第一段代码的s只是一个指针(一个野指针),并未分配空间,为其赋值就有可能编译不过。


大神们都说得很清楚了。

我要回帖

更多关于 设ch是char型变量,其值为A 的文章

 

随机推荐