Ⅰ c语言,能不能这样定义变量,为什么
不能。C99中没有对这样的赋值表达式作定义,所以编译器怎么处理这个表达式都是可以的,比如先将b的值赋给a,再将10.0赋给b(虽然现有的编译器都是先将10.0赋给b再将b赋给a)。
其次,这个表达式只定义了a是float型,b的类型不确定,若b在之前未定义,会报错。
这种表达式还存在的一个问题就是a、b的命名含义不明确,虽然不违反标准,但是不符合编程规范
Ⅱ c语言中可不可以用变量定义数组的个数
数组不可以,但是有变通的方法
intn;
scanf("%d",&n);
int*s;
s=(int*)malloc(sizeof(int)*n);
//相当用定义了一个长度为n的int数组,调用和数组一样,s[0],s[1].....
Ⅲ 在C语言中,数组定义时的下标不能用变量表示(即使它已经被赋值),如int [n];为什么能把变量的定义过程详...
在编译的时候,数组需要一个指定的大小。n必须是常数,而你说的赋值在编译的时候编译器并不知道n到底是多少,运行时候才知道,所以编译不通过。
若要动态开辟内存,可用malloc,用完之后用free释放即可。
Ⅳ C语言变量定义哪些正确哪些不正确为什么请改正
(1)游斗凳char c1,int a2;改正后char c1;int a2;
(2)INT a,b;FLOAT x,y;改正后int a,b;float x,y;
(3)a,b:char;改正后char a,b;
(4)char if;格式错误if不可以当变量
(5)int a,b改神旅正后int a,b;
(6)Int a:b:c;改正后销慎int a,b,c;
(7)int a,x;float x,y;正确
Ⅳ c语言中可不可以用变量定义数组的个数;
c语言中不可以用变量定义数组的个数。
可以使用mallo函数
mallo函数返回的实际是一个无类型指针,必须在其前面加上指针类型强制转换才可以使用;
指针自身=(指针类型*)malloc(sizeof(指针类型)*数据数量);
int*p=NULL;
intn=10;
p=(int*)malloc(sizeof(int)*n);
(5)c语言不能用变量定义扩展阅读
mallo函数使用注意事项
调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。
调用free函数时,它将用户释放的内存块连接到空闲链上。到最后,空闲链会被切成很多的小内存片段,如果这时用户申请一个大的内存片段,那么空闲链上可能没有可以满足用户要求的片段了。