`
isiqi
  • 浏览: 16502026 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

C语言指针使用的注意点

阅读更多

C语言的指针一向使人头疼,下面是从网上收集的一下关于指针的练习题,忘了作者是谁了,先贴上供大家参考:

第一题:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

main()

{

char *p,*q;

char str[]="Hello,World\n";

q = p = str;

p++;

printf(q);

printf(p);

}

运行结果是什么?____________

第二题:

void fun(char* str1, char* str2)

{

static char buffer[21];

strncpy(buffer, str1, 10);

strncat(buffer, str2, 10);

*str1 = *str2;

str1 = buffer;

}

main()

{

char *str1="ABC\n";

char *str2="BCD\n";

fun(str1, str2);

printf(str1);

printf(str2);

}

程序运行结果是__________________

第三题:

main()

{

short ar[11]={1,2,3,4,5,6,7,8,9,0,11};

short* par=&ar[1];

int i;

for(i=0; i<10; i++)

{

printf("%-5hd%-5hd%-5hd", ar[i], par[i],*(ar+i));

}

}

程序运行结果是__________________

第四题:

main()

{

short *p, *q;

short ar[10]={0};

p = q = ar;

p++;

printf("%5d", p-q);

printf("%5d", (char*)p - (char*)q);

printf("%5d", sizeof(ar)/sizeof(*ar));

}

假设sizeof(short)==2

程序运行结果是__________________

第五题:

int sub(int a, int b)

{

return a-b;

}

main()

{

typedef int (*SUB)(int, int);

SUB psub=sub;

/* psub++; */

printf("%d", psub(10,(10,5)));

}

程序运行结果是__________________, 如果将中间注释掉的语句加上, 编译为什么会报错?

第六题:

main()

{

char* pstrar[3];

int i;

for(i=1; i<3; i++)

{

pstrar[i]=" ";

}

strcpy(pstrar[1], "你好");

/* strcpy(pstrar[0], "世界"); */

printf(pstrar[2]);

}

假设编译器设置字符串常量为可读写,则程序结果是_____________

为什么说注释掉的程序语句是不正确的?

第七题:

main()

{

char *p1,*p2;

{

char* pchar;

char charar[] = "你好,世界";

pchar = "Hello,World!";

p1 = pchar;

p2 = charar;

}

printf(p1);

printf(p2);

}

说出此程序的错误之处?

第八题:

main()

{

int i;

char **p;

int msg[16]={0x40, 0x41, -1, 0x00, 0x01, -1, 0x12, -1, 0x20, 0x27, 0x41, 0x35, -1, 0x51, 0x12, 0x04};

char* strar[]={"bejing", "shanghai", "guangzhou", "guangdong", "Tokyo", "American"};

char* (*pstrar)[6];

pstrar = &strar;

p = strar;

for(i=0; i<16; i++)

{

if(msg[i] == -1)

{

putchar(' ');

continue;

}

else if(msg[i]&0xF0 == 0x40)

{

putchar(p[msg[i]>>4][msg[i]&0x<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="F">0F</chmetcnv>]);

continue;

}

else if(msg[i]&0xF0 == 0x30)

{

putchar(*(strar[msg[i]>>4]+(msg[i]&0x<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="F">0F</chmetcnv>)));

continue;

}

else

{

putchar(*((*pstrar)[msg[i]>>4]+(msg[i]&0x<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="F">0F</chmetcnv>)));

}

}

}

此题有故弄玄虚之处,但如理解指针,不难解出.

请问此题的运行结果是____________________

第九题:

main()

{

typedef char CA3[2][2][2];

typedef CA3 *PCA3;

typedef char CA2[2][2];

typedef CA2* PCA2[2];

CA3 ca3={'A', '\0', 'B', '\0', 'C', '\0', 'D', '\0'};

PCA3 pca3 = &ca3;

PCA2 pca2={ca3, ca3+1};

int i=0,j=0;

for(i=0; i<2; i++)

{

printf("\n");

printf("%s\n", (char*)pca3[0][i]);

printf("%s\n", (*(pca2+i))[0][1]);

for(j=0; j<2; j++)

{

putchar(*(*(ca3+i)+j)[0]);

putchar(' ');

}

}

}

求输出的结果是:_____________________

第十题:

/*C++ */

#include

class Display

{

public:

virtual int ShowIt(int num) {printf("%d\n", num); return 0;}

int ShowIt(double num) {printf("%lf\n", num); return 0;}

};

class DisplayEx: public Display

{

public:

int ShowIt(int num) {printf("It is Integer, value is %d\n", num); return 0;}

int ShowIt(const char* str) {printf("%s\n", str); return 0;}

};

int main()

{

DisplayEx dpex;

Display *p_base=&dpex;

p_base->ShowIt(168);

p_base->ShowIt(1.68);

dpex.ShowIt("Hello,World\n");

dpex.ShowIt(1.69);

dpex.Display::ShowIt(1.69);

return 0;

}

请说出其运行结果___________________

详细叙述c++编译器实现这一过程的方法.

分享到:
评论

相关推荐

    C语言指针练习填空和阅读程序题

    本资源主要涵盖了C语言指针的相关知识点,包括指针的基本概念、指针运算、指针与数组的关系、指针与字符串的关系等。通过本资源的学习,可以帮助读者更好地理解和掌握C语言指针的知识。 一、指针的基本概念 指针是...

    C语言指针注意事项

    理解指针的使用是掌握C语言的关键。本文将深入探讨指针的一些注意事项,尤其是如何理解和解析复杂的指针类型。 首先,我们要明白指针的基本概念。一个指针变量存储了一个内存地址,这个地址指向了另一个变量。例如...

    c语言指针学习笔记

    C语言中的指针是一种基础而...本文档为C语言指针的学习笔记,从基础到深入逐步介绍了指针的概念、定义、初始化、运算和使用。通过本文档的阅读,学习者应能更好地掌握C语言中的指针知识,并在实际编程中正确使用指针。

    C语言指针总结

    虽然指针的使用具有一定的难度和复杂性,但是只要我们遵循正确的声明规则,理解指针类型和指针所指向类型的差异,掌握指针的基本操作,并注意使用指针时的安全性问题,我们就能充分利用指针的强大功能,编写出更加...

    C语言指针知识点总结.pdf

    综上所述,C语言指针的知识点涵盖了指针声明、初始化、运算、与数组和函数的关系、字符串处理、内存管理、类型转换以及高级用法等。掌握这些知识点,有助于编写高效、复杂的C程序。在学习指针时,务必注意指针的类型...

    C语言指针实现字符串的反转

    本文主要讨论了使用C语言指针实现字符串的反转的方法,并提供了两个不同的实现程序。 标题解释 "C语言指针实现字符串的反转"这个标题表明本文的主要内容是使用C语言中的指针来实现字符串的反转操作。 描述解释 ...

    C语言指针用法难点

    ### C语言指针用法难点解析 在C语言中,指针是一种强大的工具,它能够直接操作内存地址,实现高效的数据处理与管理。然而,由于其复杂性与灵活性,掌握指针的正确使用方法成为了很多程序员面临的一大挑战。本文将...

    彻底搞定C语言指针(分类讲解)

    ### 彻底搞定C语言指针(分类讲解) #### 知识点一:变量与内存空间 在深入了解C语言指针之前,首先需掌握变量在内存中的存储方式。内存被视为一系列连续的单元,每个单元拥有唯一的地址标识。当声明一个变量如`...

    c语言中指针的知识点

    ### C语言中指针的知识点 #### 一、引言 C语言作为一种高效且功能强大的编程语言,在系统级编程和底层开发中具有不可替代的地位。其中,指针是C语言中一个非常重要的特性,它允许程序员直接操作内存,极大地提高了...

    动画教程C语言指针动画演示,指针原来这么简单(2021.01.22).pdf

    C语言指针知识点总结 本资源摘要信息主要介绍C语言指针的相关知识点,涵盖指针的基本概念、...本资源摘要信息总结了C语言指针的基础知识点和高级应用场景,旨在帮助开发者更好地理解和使用指针这项重要的编程技术。

    C语言指针学习笔记

    ### C语言指针学习笔记知识点解析 #### 一、C语言中的数据类型 在学习C语言的过程中,了解数据类型是非常重要的第一步。数据类型不仅决定了变量所占用的内存大小,还决定了变量的操作方式。 ##### 1. 基本数据...

    C语言指针,进阶学习,有一定学习基础

    总之,C语言指针的深入学习包括理解指针的性质、操作和用途,以及如何安全有效地使用指针进行程序设计。通过不断的实践和理解,你将能够得心应手地运用指针,进一步提升你的C语言编程能力。记得阅读提供的"让你不再...

    C语言练习(指针)及答案

    ### C语言指针知识点解析 #### 一、基础指针表达式求值 根据题目描述,我们有以下信息: - `ints` 数组在内存中的起始位置是 100,每个整型值和指针占用 4 个字节。 - `ints` 数组初始化为 `{10,20,30,...,200}`。...

    灵活使用C语言指针--深入理解C语言指针

    《灵活使用C语言指针--深入理解C语言指针》这篇文章详细探讨了C语言中指针的使用,这是C语言核心特性之一。指针在C语言中扮演着至关重要的角色,因为它允许直接操作内存地址,提供了高效的数据操作和强大的功能。 ...

    C语言 指针学习的笔记

    《C语言指针学习笔记》 指针是C语言中的一种强大特性,它允许程序员直接操作内存地址,实现高效的数据处理和复杂的程序设计。要掌握指针,我们需要理解其四方面的核心概念:指针的类型、指针所指向的类型、指针的值...

    C语言指针详解(让你不再惧怕指针)

    在C语言中,指针是其核心特性之一,也是许多高级功能实现的基础。指针能够直接存储内存地址,使得...通过《C语言指针详解》这样的资料,你可以系统地学习和巩固这些知识,消除对指针的畏惧,成为一名更出色的C程序员。

    C语言指针笔记

    以下是对C语言指针的一些关键知识点的详细阐述: 1. **指针变量**:在C语言中,指针是一种特殊类型的变量,它存储了内存地址。声明指针变量时,我们需要指定它将指向的数据类型,如`int *p`表示`p`是一个指向整型...

    深入理解C语言指针的奥秘

    "深入理解C语言指针的奥秘"这份资料旨在揭示指针的内在工作原理,帮助开发者掌握这一强大的工具。以下是对指针相关知识点的详细解释: 1. **指针的定义与类型**:指针是一种特殊的数据类型,它存储的是内存地址,即...

    C语言指针详解(通俗易懂).pdf

    C语言中的指针是一个非常核心和重要的概念,它提供了操作内存空间的能力,这对于理解C语言和编写高效的代码至关重要。以下是对文件中提到的知识点的...因此,理解和正确使用指针对于一个C语言程序员来说是非常重要的。

Global site tag (gtag.js) - Google Analytics