c语言指针基础问题 求解
#include<stdio.h>
#include<string.h>
void main()
{
int str=3;
int *c;
c=str;
*c=*c+1;
printf("%d %d\n",str,c);
}
请问一下 *c=*c+1;这一行怎么理解 能拜托解释下原理吗? 代码有点问题应该是笔者打错了,将变量str的地址赋值给指针变量c。下面的代码可能会帮到你。
#include<stdio.h>
#include<string.h>
void main()
{
int str=3;
int *c;
c=&str;
printf("%d\n",c);//变量str的地址
*c=*c+1;//即对变量str进行自增操作
printf("%d %d\n",str,c);
printf("%d %d\n",str,*c);
printf("%d %d\n",&str,*c);
} C中的值作为一个地址,去这个地址中找它存的东西。这个东西是一个值,它的值+1。指针就是地址。C是个指针变量,按理不能赋普通变量。如果能编译成功,那么,C的值就是3。*C就是取C的值的值。就是内存地址3号的位置,把3号位置中存放的值+1 c=str;你确定这个编译的时候不提醒你两者类型不相同?
页:
[1]