C++中int* p;

如题所述

定义了一个指向数组的指针,由于数组长度不版确定,无法计算计算指针单位长权度,因此编译器说结构定义不完整。解决方法如下:

1、变量的指针就是变量的地址。存放变量地址的变量是指针变量。即在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。

2、为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”符号表示“指向”。

3、定义指针变量对指针变量的定义包括三个内容,其中,表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示本指针变量所指向的变量的数据类型。

4、int *p:表示p是一个指针变量,它的值是某个整型变量的地址。或者说p指向一个整型变量。至于p究竟指向哪一个整型变量,应由向p赋予的地址来决定。

5、再如:int *s是指向整型变量的指针变量,float *d是指向浮点变量的指针变量.,char *g;是指向字符变量的指针变量。

温馨提示:内容为网友见解,仅供参考
第1个回答  2023-08-14

在C++中,`int* p;` 是一个声明,它声明了一个指向整数类型的指针变量 `p`。这意味着变量 `p` 可以存储一个整数的内存地址,也可以通过 `p` 来操作所指向内存的内容。

以下是一些关于指针的基本概念:

- `int*`:这是一个指针声明的一部分,表示这是一个指向整数类型的指针。`*` 表示该变量是一个指针。

- `p`:这是指针变量的名称。你可以用它来存储一个整数变量的内存地址。

你可以使用指针来操作所指向的内存。例如,你可以通过解引用操作符 `*` 来获取指针指向的内存中的值,还可以通过 `&` 操作符获取一个变量的内存地址。

以下是一些例子:

```cpp

int main() {

int x = 10;  // 一个整数变量

int* p;      // 声明一个指向整数的指针

p = &x;      // 把 x 的地址赋值给指针 p

cout << *p;  // 输出 p 指向的值,即 x 的值(输出:10)

*p = 20;     // 修改 p 指向的内存中的值,也就是修改了 x 的值

cout << x;   // 输出 x 的值,已经被修改为 20(输出:20)

return 0;

}

```

在这个例子中,指针 `p` 存储了变量 `x` 的内存地址,并且通过 `*p` 解引用操作符来操作这个内存地址中的值。这是指针的基本用法。

C++中int* p;
4、int *p:表示p是一个指针变量,它的值是某个整型变量的地址。或者说p指向一个整型变量。至于p究竟指向哪一个整型变量,应由向p赋予的地址来决定。5、再如:int *s是指向整型变量的指针变量,float *d是指向浮点变量的指针变量.,char *g;是指向字符变量的指针变量。

int* p;
指针一个占据存储空间的实体在这一段空间起始位置的相对距离值。在C\/C++语言中,指针一般被认为是指针变量,指针变量的内容存储的是其指向的对象的首地址,指向的对象可以是变量(指针变量也是变量),数组,函数等占据存储空间的实体。

c++中int* p=& a;什么意思?
在定义的时候 int *p=&a; 是等同于 int=*p; p=&a;的。该形式只在定义的时候是正确的。就是指针p所指向地址的内容为a的内容。如果不是定义的时候 p=&a; 就是它字符的那个意思,就是指针p所指向地址的内容为a的地址。Dev C++试了下 ———再附上一些我的相关笔记 “*p”表示地址为p存...

在C++中int* p;和int* p;有何区别吗?
一个典型的C程序员会写“int p”,而且振振有词地告诉你“这表示‘*p是一个int’”——听上去挺有道理的。这里,*和p绑在了一起——这就是C的风格。这种风格强调的是语法。而一个典型的C++程序员会写“int p”,并告诉你“p是一个指向int的指针,p的类型是int*”。这种风格强调的是类型。...

C++中,int *p; *p = 1; 其中1赋值到哪里去了?
你的代码应该是这样吧!int *p=new int;就是说在堆内存中开辟一块新空间,里面存放int的数据,然后你要是想对他操作,当然要有个指向他的指针,就是定义了的p;然后你这个代码*p=1;就是说把1赋值给p指针所执行的内存空间中,修改内存中值!

关于c++指针的问题 int *p; *p,&p都什么意思,怎么用
在声明中用时就是声明了一个指针,当在表达式中时就是取值运算符,指针的值就是他所指向的地址,&是取值运算符,&P就是取出变量p本身的地址,如果变量p是指针就是取出指针本身的地址,大一新开课的是吗那本坑爹教材,建议看《C++primer plus》权威,不能再好的书了,膜拜。望采纳 ...

C++中int *p和 int 的区别
int *p; 定义了一个未初始化的int类型指针, 他指向int类型数据的内存块起始位置;int 是有符号整形变量, 32位系统下是4个字节大小;

c++里面开辟内存int* p=new int[2],实际上却超过了2个int,为什么还能使...
new是在程序的堆空间开辟空间,程序的堆空间很大,一般不容易出现问题,但是如果你int *p是在栈空间,例如是在 void fun(){ p[2];strcpy(p,"dfasdfasd");} 就会出现问题,代码是在栈空间, 这样操作容易造成缓冲区溢出,另外注意在new以后要记得delete,否则会造成内存泄漏,有问题请追问。满意请...

C++中 有int a[10] ;int *p; p=a;则(*p)++,++(*p)什么意思?
int *p 就是声明一个指针,这个指针在栈里,其字节长为4,就是地址。只不过这个地址是指向int类型的 p = a就是让p指向刚才的那个数组的头(第一个元素)(*p)++这个要分两部分说,*p就是通过p这个指针指向的空间的数据,那么*p就是a[0],然后再++,其实就是a[0]++ 现在就是a[0]++和++a[...

C++中,以十进制形式输出指针int *p的地址为什么是long(p)形式?
你好!例如int型无法表示32769,超过这个范围的数不能表示,所以要用长整形地址的十进制数值一般比较大,但是int类型只能表示-32767到32768之间的整数 打字不易,采纳哦!

相似回答
大家正在搜