C++ :指针及其有关的问题

什么是指针?指针是保存了变量在内存中的地址。但是指针自己也需要有一个地址。

在C++中,通过&符号,可以取得某个变量的内存地址。使用* 可以定义一个指针变量。该变量的类型要与其引用的变量类型一致。

int main()
{
    int i=5;//这是一个整型变量i
    int *p=&i;//这是通过定义了一个指针p,保存了i的内存地址
    cout<<"变量i的值为:"<<i<<endl;//输出i的值
    cout<<"p这个指针所保存的地址中保存的值为:"<<*p<<endl;//输出p这个地址保存的值,其实就是i的值
    cout<<"p这个指针保存的地址为:"<<p<<endl;//输出p保存的地址,也就是i变量在内存中的地址
    cout<<"p这个指针自身的地址为:"<<&p<<endl;//输出p这个指针的内存地址

    return 0;

}

下面是运行后的结果

时间: 2024-11-01 22:13:04

C++ :指针及其有关的问题的相关文章

C语言指针的长度和类型

如果考虑应用程序的兼容性和可移植性,指针的长度就是一个问题,在大部分现代平台上,数据指针的长度通常是一样的,与指针类型无关,尽管C标准没有规定所有类型指针的长度相同,但是通常实际情况就是这样.但是函数指针长度可能与数据指针的长度不同. 指针的长度取决于使用的机器和编译器,例如:在现代windows上,指针是32位或是64位长 测试代码: #include<stdio.h> #include<math.h> #include<stdlib.h> #include<s

指向多维数组的指针变量

问题描述 指向多维数组的指针变量 #include int main() { int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p; for(p=a[0];p<a[0]+12;p++) { if((p-a[0])%4==0) printf(" "); printf("%4d",*p); } } 把for(p=a[0];p<a[0]+12;p++)改成for(p=a[0];p<a+3;p++)为什么是正确的

指针-c语言中字符数组初始化问题

问题描述 c语言中字符数组初始化问题 字符数组初始化1: char str[]=""123"";//不报错2: char str[4]; str=""123"";//不能将const char[4] to char[4]字符指针初始化1: char *str=""123"";//不报错2: char *str; str=""123"";//不报错求

Ubuntu系统鼠标指针上下跳动该怎么办?

  可能不少网友都遇到了这个问题,就是鼠标指针一闪一闪的,一会而消失一会儿出现的样子.这个经验告诉你怎么做可以消除这个问题,保证99.5%有效率. 1.打开系统设置 2.点击显示 3.然后切换到"未知显示器",你会发现未知显示器是开启的状态 4.现在你只需要把未知显示器设置为"关闭"状态就可以了.然后点击应用,系统会提示你是否保存设置,注意别点错了.

C#定义鼠标指针形状

在Windows应用程序中,通过设置控件的Cursor属性可以定义鼠标的显示形状.控件(如Button控件)的Cursor属性用于设置鼠标指针的类型,默认为Default. 语法: public virtual Cursor Cursor { get; set; } 属性值:一个Cursor,表示当鼠标指针位于控件上时显示的光标. Cursor:是一个值,该属性值如表所示. 表 Cursor属性的值 值 说明 AppStarting 获取在应用程序启动时显示的光标 Arrow 获取箭头光标 Cr

fgets函数执行完成后,文件指针如何移动?

用fgets执行之后,读取了文件中的一行,这时文件位置指针是自动指向文件的下一行的开头吗,还是指向当前行的结尾?如果一行的字符串没读取完会怎样? 实例结果: 如果一行的字符串没读取完会,下一次会接着上一次读取: 如果读完了,直接从下一行开头开始. 百度百科: 从文件结构体指针stream中读取数据,每次读取一行. 读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束. 如若该

彻底搞定C语言指针 第六篇

指向另一指针的指针 一.针概念: 早在本系列第二篇中我就对指针的实质进行了阐述 .今天我们又要学习一个叫做指向另一指针地址的指针.让我们先回顾一下指针的概念吧! 当我 们程序如下申明变量: short int i: char a: short int * pi: 程序会 在内存某地址空间上为各变量开辟空间,如下图所示. 内存地址→6 7 8 9 10 11 12 13 14 15 ------------------- --------------------------------------

c语言先用scanf初始化了一个字符指针,之后再定义字符数组出现内存不可读,在线等,急求

问题描述 c语言先用scanf初始化了一个字符指针,之后再定义字符数组出现内存不可读,在线等,急求 #include #include int main() { char*s; scanf("%s",s); //printf("%sn",s); //int n = strlen(s); //printf("%dn",n); char ret[56]; return 0; } 解决方案 s只是指针变量,没有分配内存 char*s; s = mall

一个关于指针和数组的问题

问题描述 一个关于指针和数组的问题 #define _CRT_SECURE_NO_WARNINGS#include ""stdlib.h""#include ""stdio.h""#include ""string.h"" int main(){ char buf1[100] = { 0 }; char buf2[100] = { 0 }; char *p1 = buf1; char *

ios-MFMailViewController选择指针

问题描述 MFMailViewController选择指针 使用xcode的MFMailViewController .设置了接收器. [mailComposer setToRecipients:emailAddresses]; 需要将接收器设置给NSArray中的指针,不知道应该怎么实现? 具体一点就是,需要根据用户的Email或者其他信息来访问一个人