C++ 指针一题

输出如下代码结果:

#include <iostream>

using namespace std;

class A {
    int i;
public:
    void Hello() {cout << "Hello" << endl;}
};

int main()
{
    A *p = NULL;
    p->Hello();

    return 0;
}

结果:

Hello

析:

需理解C++的 this指针。将以上C++代码翻译成C程序如下:

#include <stdio.h>

struct A {
    int i;
};

void Hello(struct A *sp)
{
    printf("Hello\n");
}

int main()
{
    struct A ×a = NULL;
    Hello(a);

    return 0;
}

实际上C++中指针p,只是一个未使用到的指针而已。

时间: 2024-10-07 23:32:03

C++ 指针一题的相关文章

指针编程题

main.m文件 //1.输入10个整数,将其中最小的数与第一个数交换,把最大的数和最后一个数对换,写三个函数1.输入10个数,2.进行处理,3.输出10个数       int a[10] = {0};       int *p = NULL;       p = a;       //1.输入       inputArr(a, 10);       outputArr(a, 10);       printf("\n");       //2.处理函数       handleA

C和指针--编程题9.14第10小题--判断回文函数

题目: 编写函数 int palindrom( char *string); 如果参数字符串是个回文,函数就返回真,否则就返回假.回文就是指一个字符串从左向右读和从右向左读是一样的.函数应忽略所有的非字母字符,而且在进行字符比较时不用区分大小写. 前提是空白字符.标点符号和大小写状态被忽略,当Adam第1次遇到Eve时他可能会说的一句话:"Madam,I'm Adam"就是回文一例. 分析题目,题目中没有规定空字符串和全是非字母字符的情况是否属于回文,我私自将空字符串归为回文,将全是非

LintCode链表题总结

由于链表本身结构的单一性,链表的题目很少会有很大的变种,基本都是围绕几个基本的考点出题目.所以链表的题目比较好掌握,但是链表的题目又不太容易一次就AC通过,由于边界情况未考虑.空指针(比如head.next不存在但是却给head.next赋值了,就会抛出nullpointer的错误).越界等边界情况,我们需要在测试用例的时候多考虑边界条件.在模拟计算的时候一定要用纸和笔把中间的操作过程给画出来,这样比较容易形成思路. 在LintCode的ladder1中,链表那一章有如下这一些题目: 此外,Li

PAT甲级题分类汇编——树

AVL树好难!(其实还好啦~) 我本来想着今天应该做不完树了,没想到电脑里有一份讲义,PPT和源代码都有,就一遍复习一遍抄码了一遍,更没想到的是编译一遍通过,再没想到的是运行也正常,最没想到的是一遍AC. 其实很多题都有数,std::set 之类用的是红黑树,据说很复杂,比AVL树还要复杂的那种.但是,用到这些设施的题,都不在这一分类下,这一分类下的题,因为题目要求自己建树,也就不用标准库设施了. 大多数题中,树在内存中都是连续存放的.不是像完全二叉树那样的连续,是物理上连续而逻辑上用数组下表代

剑指offer链表题的双指针法总结

本篇博客旨在总结双指针法在剑指offer链表题中的应用 包括删除链表中重复的节点.链表中倒数第k个节点.链表中环的入口节点.反转链表.合并两个排序的链表.两个链表的第一个公共节点. 根据双指针的类型,可以大致分为三种: 第一种是间隔一定距离的双指针法,包括删除链表中重复的节点.链表中倒数第k个节点两题 删除链表中重复的节点 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5

剑指offer面试题17——合并两个排序的链表

题目1519:合并两个排序的链表 题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则.(hint: 请务必使用链表.) 输入: 输入可能包含多个测试样例,输入以EOF结束.对于每个测试案例,输入的第一行为两个整数n和m(0<=n<=1000, 0<=m<=1000):n代表将要输入的第一个链表的元素的个数,m代表将要输入的第二个链表的元素的个数.下面一行包括n个数t(1<=t<=1000000):代表链表一中的元素.接

C和指针第七章第五题

实现一个简化的printf函数,能够处理%d,%f,%s,%c等格式. /************************************************************************* > File Name: permutation.c > Created Time: 2014年06月17日 星期二 23时22分34秒 *********************************************************************

编程题:使用指向指针的指针

#include<stdio.h> void main() { static char *str[]={"How","are","you"}; char **p; p=str+1; printf("%s\n",*p); printf("%c\n",**p); } 编程题:使用指向指针的指针,布布扣,bubuko.com

编程题:返回指针值的函数,求两个数中较大的数。

#include<stdio.h> int *max(int *x,int *y) { int *q; if(*x>*y)  q=x; else  q=y; return q; } void main() { int a,b,*p; scanf("%d,%d",&a,&b); p=max(&a,&b); printf("%d,%d,max is %d\n",a,b,*p); } 编程题:返回指针值的函数,求两个数中较