#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int b=1;
int *a;
a=&b;
cout<<a;
printf("\n");
a++;
cout<<a;
printf("1");
getch():
return 0;
}
这是我写的代码,我想测试下指针变量++后的效果,但是报了下面的错误。为什么呢
?
--------------------Configuration: cecece - Win32 Debug--------------------
Compiling...
cecece.cpp
E:\数据结构\cecece.cpp(17) : error C2143: syntax error : missing ';' before ':'
E:\数据结构\cecece.cpp(19) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Error executing cl.exe.
cecece.exe - 1 error(s), 1 warning(s)
getch():这一行错了,分号写的不对,你是在中文输出法下写的分号,改成在英文输入法模式下写分号就ok了
printf("1");
getch(): 在这里你把;写:了,所以语法错误,改;
return 0;
另外 指针++到下一个地址了,测指针++要用数组,先指向数组头,在++
int main()
{
int b=1;///假设b的地址为0xbff97714
int *a;
a=&b;///变量a的值现在存放是的变量b的地址,即a = 0xbff97714;
cout<<a;
printf("\n");
a++;///变量a的数据类型是int*类型,占4个字节的内存,执行++操作就是将a的值+4
///a = a + 4 = 0xbff97714 + 4 = 0xbff97718
cout<<a;
printf("\n1\n");
getchar();
return 0;
}