1.计算机编程C语言问答集

更多C语言问答文章请参见:计算机编程C语言问答文章合集

或者点击下方加入我的“C语言问答课”圈子,看看我第一时间给大家带来的C语言试题解析!

2.【计算机编程】【C语言指针试题】

C程序代码语句有以下4条:

char[] = "我爱C"; char[] = "我爱C"; char * =“我爱C”; char * =“我爱C”;

(" ==?%dn", == );

(" ==?%dn", == );

两条C程序语句会输出什么?

3.【计算机编程】【C语言指针问答】

1.用“自己和他人”的概念来解决问题

这道C语言指针题考察了字符数组、常量字符串、字符指针等知识点,看上去“眼花缭乱”。 利用我提出的C语言指针“self”中的“值”、“其他地址”和“指针运算”等概念,解决这个问题非常简单。 这些概念在我的专栏中:

第9章、第10章、第13章有详细解释,如下:

第九章:第九章,指针“吉X”的概念,从这里开始! (基本数据类型)

10:第10章指针“other X”的概念令人兴奋! (基本数据类型)

第13章:第13章,你觉得用指针做计算难吗? (应用于数组)

2.C程序代码

我把这个C语言指针问题扩展成一段C程序代码,如下:

指针c语言通俗理解_c语言指针_指针c语言用法

C程序代码

在这段C程序代码中,我定义了两个字符数组 和 ,每个数组存储一个字符串“I love C”,然后定义了两个指针变量,指向两个字符串“I love C”。 运行结果如下:

c语言指针_指针c语言通俗理解_指针c语言用法

C程序运行结果

这个结果就是上面C程序问题的答案。

3.C程序代码分析

3.1 分析1

在C程序代码的第5行和第6行中,有以下语句:

char array1[] = "I love C";
char array2[] = "I love C";

虽然两个字符数组中存储的字符串看起来一样,都是“I love C”,但实际上,两个字符串位于内存中的不同位置。

从运行的角度来看,字符数组第一个元素的地址是,数组名的值也是。 我在专栏中提到,C 代码编写数组名称的方式是第一个元素的地址。 换句话说,数字的值意味着“其他地址”,其他人的地址([0])。

从运算来看,字符数组第一个元素的地址是,数组名的值也是,也就是说,值的个数的含义是“其他地址”,其他人的地址([0])。

C程序代码第17行有如下语句:

printf("array1 == array2吗? %dn", array1 == array2);

这种C程序代码的编写方式就是利用指针变量的值来进行比较操作。 is 的值,is 的值,它们相等吗? 当然它们不相等,所以输出是:0!

3.2 分析

在C程序代码的第7行和第8行中,有以下语句:

char *pChar1 = "I love C";
char *pChar2 = "I love C";

两个指针变量指向的字符串看上去是一样的,都是“我爱C”,而且这两个字符串是相同的,也就是说,它们位于内存中的同一个位置。 这是一个常量字符串!

从运行的角度来看,指针变量的值是。 我在专栏中提到,指针变量的值是常量字符串“I love C”的第一个字符的地址,也就是字符“I”的地址。

从运行的角度来看,指针变量的值也等于指针变量的值。 这再次表明指针变量指向同一个字符串。

C程序代码第18行有如下语句:

printf("pChar1 == pChar2吗? %dn", pChar1 == pChar2);

这种C程序代码的编写方式就是利用指针变量的值来进行比较操作。 由于两个指针变量的值相等,所以输出为:1!

4.C语言指针试题总结

这道C语言指针题看起来是不是很难? 仍然在我提出的“自我他者”概念的范围之内,所以我总是告诉同学“C语言指针只是纸老虎”!

好了,今天的主题就讲到这里吧,不管如何,能帮到你我就很开心了,如果您觉得这篇文章写得不错,欢迎点赞和分享给身边的朋友。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注