2 u012197585 u012197585 于 2016.02.12 19:09 提问

c小白求教指针问题(定义指针变量的位置)

请教问什么1和2都可以编译通过,但是写到3的位置报错呢

#include <stdio.h>
int main(){
   int a = 10;
   int b = 100;
   int c = 1;
  // 1.int *d = &c;
   int *point_1,*point_2;
  //2. int *d = &c;
   point_1 = &a;
   point_2 = &b;
   //3.int *d = &c;
   printf("*point_1=%d,*point_2=%d\n",*point_1,*point_2);
   return 0;
}

4个回答

91program
91program   Ds   Rxr 2016.02.12 19:42
已采纳

C标准的语法,变量定义必须放在模块的开始处,功能语句之前。放在之后,编译就会报错的。

u012197585
u012197585 谢谢
2 年多之前 回复
hopease
hopease   2016.02.12 19:25

变量的定义,放在语句之前。否则,有些编译器会报错。

u012197585
u012197585 谢谢
2 年多之前 回复
zuishikonghuan
zuishikonghuan   2016.02.12 21:35

编译器太老了,需要C99以上标准的编译器,VC6就不支持C99

qwe885167759
qwe885167759   2016.02.13 18:52

这个估计要看编译器的种类了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言中指针变量使用时常见的几个问题
C语言是多数编程语言学习的基础,很多高校开设的软件相关专业都会涉及到C语言的学习。大学生刚刚迈进校园就开始接触C语言的学习,难免会举步维艰,尤其是当涉及到C语言中指针的时候,更是让一票新生头晕脑胀。其实,指针就是一种特殊的数据类型,直接指向目标的存储地址,实现直接访问对象存储空间的功能。今天,我就和大家分享一下C语言中指针学习会遇到的几个问题及解决方法,希望可以帮到大家! 1.声明指针和取指针变
c语言与指针——(二)指针变量的定义与赋值
由上一节,我们知道了,指针就是地址,而变量的指针就是变量的地址,存放变量地址的变量就是指针变量。指针变量可以指向另一个变量,在程序中使用" * "来表示这种指向关系。 1.指针变量的定义         指针的定义依然遵循先定义后使用的原则,在使用前必须先定义,指定其类型编译器再据此为其分配内存单元。         定义指针变量的一般格式:         类型标识符 * 指针变量名
C语言有关指针的变量声明中的几个易错点
Technorati 标签: 指针,typedef,const,define          我们都知道,至少听说过指针对于C语言中的重要意义,但是在使用指针时却唱唱让我们痛不欲生,这里有几个在声明指针有关的变量时易错的地方。 1. int* 和 int  * (注意空格的位置)         对于单变量声明,即一条语句中只声明一个指针变量的情况,没有区别;原因是C语言允许形式的自由性。即以下两种声明方式效果相同。 int *a; int* a;        对于一条语句中声明
定义指针类型时*号位置与功能的关系
定义指针类型时*号位置与功能的关系 2007-05-11 10:22lulapub | 分类:其他编程语言 | 浏览1776次 常常看到这样的句子:int* a;和int *a; 请问这*号紧靠在类型后面和紧靠变量前面,在含义上有什么区别吗? 在使用变量时有什么区别吗? 分享到: 举报▼| 2007-05-11 10:26提问
C语言中“指针”和“指针变量”区别及定义
今天来学习指针,当我们在叫外卖的时候,一般都会让外卖送到详细的地址,而当你的公司独占一层的情况,你只需要让外卖送到前台即可.无论是哪种情况,外卖都是送到你的手上.   而对于计算机,访问内存的方式有两种,直接访问和间接访问..直接访问通过就是之前讲的通过变量名称去访问.而对于间接访问,指针是常见间接访问方式.指针就像一个快捷方式,它指向内存的一个地址.我们通过指针就可以间接的访问到数据.   
定义指针变量时星号的位置
int *a; int* a; 两者意思相同且后者看上去更为清楚:a被声明为类型为 int* 的指针. 但是,这并不是一个好技巧,原因如下: int* b, c, d; 人们很自然地以为这条语句把所有三个变量声明为指向整形的指针, 但事实上并非如此. 我们被它的形式愚弄了. 星号实际上是表达式 *b 的一部分, 只对这个标识符有用。 b 是一个指针, 但其余两个变量只是普通
C语言指针定义变量方式
用变量a给出下面的定义: 1、  一个整型数; int a;   2、  一个指向整型数的指针; int *a;   3、  一个指向指针的指针,它指向的指针是指向一个整型数; int **a;   4、  一个有10个整型数的数组; int a[10];   5、  一个有10个指针的数组,该指针是指向一个整型数的; int *a[10];   6、  一个指向有
单片机C语言之指针变量
本来通过一个实例来解释C语言指针。
c语言,定义多个指针的写法,多个指针的声明
先说明正确的多个指针声明应该为:例:int *a,*b,*c,*d; 按照常理定义变量应该为:类型 变量名 如:int a; 但是定义指针时,int *a;依照 类型 变量名 的规则来看,就像定义了一个int型的,名字为“*a”的变量,但是实际上我们声明的变量为int*型的变量a,那我们可以这样int* a;这样看起来类型就是int*了,变量为a,但是当我们int* a,b;时,看起来就是定义
关于全局变量的初始化问题与野指针
今天遇到一个小问题,声明一个全局的指针变量p1,并且通过malloc动态分配内存的方法,将一个1000Byte内存的首地址赋给p1,代码:char* p1=malloc(1000); 如下图: 但是使用 gcc 命令编译后报出如下错误(使用C99标准) 看了别人的博客后才知道是如下原因: c99标准中规定:全局变量和static变量的初始化需要指定一个常量,不能是一个非常量的表