c语言中char a[N]这种表达是否正确

如题所述

如果符号N被定义为符号常量,是可以这样表达的

比如:

#define N 80
int main()
{
char a[N];
return 0;
}追问

是不是若不先定义符号常量就不能这样用?

追答

是的。不先定义符号常量就不能这样用

追问

谢谢你

追答

不客气,有问题,欢迎提出来一起讨论

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言题目,详解
A中左侧少了[n],正确写法为 char a[] = {'A', 'B', 'C'};1. B中左侧正确,但右侧是字符类型,正确的写法为 char a[5]="0123";1. C正确 1. D中左侧正确,右侧数据类型也正确,但左侧的范围是5,右侧的数据大于5;正确写法为int a[6]={0,1,2,3,4,5};2. d = 241 -> ...

C语言中char *a[ ]什么意思,他和char (*)a[ ]有什么什么区别?
a[]表示的是数组a[]是一个指向char的指针类型数组,相当于a[]里面的每一个元素都实际值都是一个指向字符串的指针(即存储某个字符串的首地址)后面这个你应该要问的是char (*a)[]吧,不然的话就和第一个一样了 char (*a)[N]表示的是指向一个元素为N的字符串数组的指针,说白了就是一个...

C语言中说字符串结尾应该是字符'\\n',但是看我在下面的代码中结尾是字符...
“C语言中说字符串结尾应该是字符'\\n',” 这句话是不对的,字符串的默认结尾是‘\\0’,例如:char a[] = “abcd”,在内存中是这么存储的:系统会默认的将最后一位加上一个'\\0'做为字符串的结束符。这时,a的数组长度为5,而a的字符串长度为4,即它只有4个字符。再来看这个:char a...

c语言:char a="ABCD"; 这个语句是对的还是错的?为什么
当然是错的,根据标准C的规定,一个char类型的变量只有一个字节的大小,就是可以放一个ASCII字符。像你这样要放入多个字符 只能放入一个连续的内存空间 如:char a[]= "ABCD";char p = "ABCD";

c语言:char a="ABCD"; 这个语句是对的还是错的?为什么
这是错的。编译就不能通过。char a中只能保存一个字符。而"ABCD"是一个字符串,它由5个字符组成(外加一个串结束符'\\0')。

【C语言】定义一个判断回文数的函数,输入一串数字或字母,判断是否为回 ...
=a[N-i-1]) return 0; } return 1;}int main(){ int N,i,k=1; printf("请输入您要输入字母的个数"); scanf("%d",&N); char a[N]; getchar(); for(i=0; i<=N; i++) { scanf("%c",&a[i]); } if(check(a,N)) printf("您输入的是回文...

c语言,int a[10]可以存10个数,但char a[10]只可以存9个字符,最后一个存...
char a[10]只可以存9个字符,最后一个存结束号?是的,这是因为C语言的字符串是以'\\0'符为结束标志,如果没有这个结束符,编译器就不知道这个字符串到底有多长。char ch[N]; 这个字符数组实际可以存放的字符个数是(N-1)个,最后一个必须存放'\\0'结束符。而像Java、C#、Go、Python等语言,...

关于c语言的一道编程题,求大神解答! 从键盘输入一个字符串存入一个字符...
char a[N],temp;int i=0,j;while(1){ scanf("%c",a+i);if(a[i]=='@')\/\/输入 @ 结束 break;if(i>0&&(a[i]==a[i-1]+1||a[i]==a[i-1]-1)){ temp=a[i];a[i++]='*';a[i]=temp;} i++;} for(j=0;j<i-1;j++){ printf("%c",a[j]);} return 0...

c语言char a[10]
由于我们总是很懒的去数相关字数的,所以我们通常写成 char a[]="I am a boy";这样。就算你数错了,也能不至于内存泄露。另,字符串是要有结尾符'\\0'的。占一个char。

c语言:输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个...
char a[N];int i,m=0,n=0,b=0,c=0;printf("Input a string:");gets(a);for(i=0;a[i]!='\\0';i++){ if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')m++;else if(a[i]>='0'&&a[i]<='9')n++;else if(a[i]==' ')b++;else c++;} printf(...

相似回答