c语言中能这样定义吗?int *(a[3]),(*b)[3]; 这样定义对吗
int a[]; //这样不可以,不能确定元素个数。
int a[]={1,2,3,4,5}; //这样可以,因为从后面的初始化表中可以确定元素个数为5。
在定义的时候*号代表这个是一个指针。在使用的时候,*号才代表着解引。
数组的名字实际上就是一个地址,而且是第一个元素的首地址。所以*p = a;就是将数组的首地址赋给指针p。
(*b)[3]中b是一个指针,指向有三个元素的整型数组。正确。
c语言中什么时候可以这样定义数组"int a[]"
定义数组,并通过初始化方式来填写数组内容 int a[]={1,2,3,4,5} ;这与int a[5]={1,2,3,4,5} ; 是一样的,[]中不写数字,表示数组空间大小由实际数组元素数据个数来决定。这样定义的数组,一般表示一个常量数组。当然,因为没有加const,也可以修改数组元素内容,如:a[0]=6 ;自...
关于c语言中规定变量必须先定义后使用的问题
并未要求一次性将所有的变量声明或者定义,只要求在使用某个变量之前先定义。变量的定义风格利弊如下:1、变量在函数开头定义:便于修改。2、变量就近定义:便于阅读。3、变量在块语句的开头定义:有的临时变量放在语句块开头,可以不用在函数开头定义,并且在使用完毕后释放空间,可以这么做,但不要无故...
c语言中,这样定义一维数组正确吗? int a[5]={0,1,2,3,4}
int a[5]={0,1,2,3,4};语法上是正确的,分号不可漏写。这叫 声明与初始化。若写成: int a[]={0,1,2,3,4}; 也是可以的,会自动算出声明的是 int a[5];
急!C语言中数组可以int a[ ];这样定义吗?!
int a[]; \/\/这样不可以,不能确定元素个数。int a[]={1,2,3,4,5}; \/\/这样可以,因为从后面的初始化表中可以确定元素个数为5。
double a=2.0 C语言中可以这样定义吗?
b 正确;a 错在 3_four不是一个合法的变量名,变量名可用数字、字母和_组成,但是只能以字母或者_开头。c 错在4e2.0,4e2表示 4 10^2 也就是400.而不能表示成4e2.0的形式,c中没这种表达。d 错在do是关键字,关键字不能作变量名 ...
C语言中函数可以嵌套定义吗?
C语言可以递归调用,但是(函数)不能嵌套定义。例如:int fact(int n){ if (n == 0) return 1; else return n * fact(n - 1);}图中的递归调用是允许的。而:void foo(){ void bar() { \/\/ Some code }}这样在函数内定义函数是不允许的。不过结构体是可以嵌...
C语言中能定义一个二维数组不限行列吗?要怎样弄啊?
不行,不允许这样的定义。要想以后自定义,只能使用动态数组。
C语言中能用char定义*这这种符号吗,如果能它能够正常的加减乘除吗?
可以,char 型就是一字节整型,字符 * 的值等于 42:include <stdio.h> int main(){ char a='*';int i;printf("char %c ASCII value is %d\\n",a,a);for (i=1;i<5;i++) { printf("a+%d = %d\\n",i, a+i);printf("a-%d = %d\\n",i, a-i);printf("a*%d = %d\\n...
c语言中能在同一个函数中重复定义同一个变量那??如int a=5;int a=...
不合法。这样会编译报错的。除非不在同一个文件中。
C语言中的定义语句#define FU(m,n) (m)\/(n) 为什么不能这样定义#...
如果m或n是个表达式,展开后由于优先级问题导致错误。如当m=1+2,n=3+4时,原定义表示(1+2)\/(3+4),而后一个定义被扩展为1+2×3+4,这样就不符合程序员的本意了。
勇于来佳: int*表示定义一个int*类型的变量,即int型的指针变量. int表示基本的数据类型(整型); *表示指针操作符. 举例如下: int a[]={1,2,3,4,5}; // 定义一个int类型的数组,包含5个元素int* p2=a; // 定义一个int类型的指针变量p1,指向数组a的首c语言中int*代表什么意思
衡阳县18237567636: C语言中,有定义int *a; *a=10; 合法吗?为什么 - ?
勇于来佳: 不合法,int *a 的时候只是定义了一个指针变量,但是还没有为此指针分配存储空间,因此后面对此指针指向的变量(*a)赋值是会报错的.
衡阳县18237567636: C语言中int*和int *的区别 - ?
勇于来佳: 可以说是没有区别的,不过标准要求是靠近变量的 int *a; int* a; 这两个意思是相同的,不过通常选第一种. 如果定义int *a,b;这样的话,第一个a是指针第二个是变量. 如果定义成int* a,b;这样的话比较不明朗.
衡阳县18237567636: C语言中的int**用法 - ?
勇于来佳: int **是二级指针的定义方法,二级指针指向一级指针.
衡阳县18237567636: 关于c语言中的定义int类型的常量 - ?
勇于来佳:可以这样定义 但行尾必须加分号. 不过你这样定义的是变量 并不是常量 要定义常量可以写为 const int a = 0x12345678; 或者直接用宏定义 #define CONST_A 0x12345678 PS:宏定义时无需加分号 int a =0x12345678;//定义一个...
衡阳县18237567636: C语言中,如何定义一个'指针数组',这个'指针数组'专门用来存放'数组指针'. - ?
勇于来佳: 指针数组定义int*p[n]; []优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组,它有n个指针类型的数组元素.这里执行p+1时,则p指向下一个数组元素, 这样赋值是错误的:p=a;因为p是个不可知的表示,只存在p[0]、p...
衡阳县18237567636: 在C语言中能否这样定义:int x=y=1 - ?
勇于来佳: 不可以. 赋值可以连续赋值. 定义初始化必须分开. 即 int x=1, y=1; 或者 int x,y; x=y=1;
衡阳县18237567636: C语言中定义的变量前加**是什么意思 - ?
勇于来佳: 参考答案:我是这样认为的:*是指针运算符.我们曾可以这样去定义:int a[10],*p,**s; 如果在下面的语句中出现了*p=a; 这就意味着指针p已经指向数组的首地址,也就是a[0], 此时我们可认为指针p是一级指针. 如果在下面的语句中出现了*s=p, 这就意味着指针s指向了p的单元,而p指向了a[0] 此时s离数组的首地址形象的像隔了2级 因此称s为2级指针. 对于2级指针,有**s=*(*s)=*p=&a[0]
衡阳县18237567636: C语言,int a[3],*p=a;能这样定义吗!*p不是代表取值吗!a应该是地址!他们为什么能等 - ?
勇于来佳: 在定义的时候*号代表这个是一个指针.在使用的时候,*号才代表着解引.数组的名字实际上就是一个地址,而且是第一个元素的首地址.所以*p = a;就是将数组的首地址赋给指针p.
衡阳县18237567636: c语言中int *p,*p=6对吗? - ?
勇于来佳: 这个不对,*p只是一个指针,本身并没有存储数据的空间,而这个指针没有给它赋地址值(它还是一个“野指针”),所以此时并不能给它赋值.可以这样:int a; p=&a;*p=6;