char str[9]={"good,bye"};//这里只有8个字符,问什么数组的元素个数必须要是9呢?改成8就出现错误了
char str[2][9]={"good,bye"};//这个二维数组是2行9列,那就可以存18个字符啊?但是为什么如果改为[2][8]就不正确了。而且我觉得存储8个字符用[2][4]就够了啊。
还有两个小问题 就是char (*s1)[10] 这条语句是什么意思?是定义了一个指针?
puts(s1[0]);
puts(s1[1]);
这两个语句又是什么意思
字符后边系统会自动加一个‘\0’,所以需要多一个空间
你那样赋值,只会把那8个字符赋给第一个数组
第一了一个指针数组
puts是输出吗?我不常用C语言的函数。那么那两句的意思分别是输出s1数组里第一个和第二个数据
第二个问题还不太明白- -!能否再详细一点 good,bye
就算这个字符串实际是有9个字符,但是二维数组用[2][5]也不行吗?
char str[2][9]={"good,bye"};在初始化的时候如果的格式是={"good,bye","good,bye"}这样子才是全部初始化,那显而易见的就是,你的只是初始化了第一个对不对,那第一个你定义少了是不是还是报错呢~
char (*s1)[10] 是定义了一个指针,指向的是一个数组,puts是输出~就是输出s1的第一个和第二个值
关于C语言中数组定义问题
(1)在堆栈段中分配内存,由于太大无法分配,所以错误。(2)在数据段中分配内存,数据段可以分配,无错误。(3)数组比(1)需要的内存少,在堆栈段大小范围内,可以分配,无错误 (4)同(3)
一道C语言数组的题目。求指点
1.首先一点是主函数写int main(),写void main()的话是错的,至于为什么就不要深究了吧,以后会懂的,现在给你说你也搞不懂,这就是规律,没办法。2.你这个地方肯定就是想从键盘输入一个数,而这个数也就是数组的长度。但是这样是不可以的,静态数组定义的时候必须指出它的大小,不然肯定会出错,...
关于c语言数组的一些疑惑?
在C语言中,array[10]有两种含义:①它指含有10个元素的数组array,如:int array[10];②它指数组array的第10号元素,如:array[10] =5;因此,对于使用数组array[10](这里,你要把array[10]理解成含有10个元素的数组array,而不能理解成第10号元素)做形参,只写array[]即可(只写一个空的中...
c语言中关于数组的问题,求解释
A a[0]+4 错 a[0]是第一个元素,这表示首元素加4的值 B *a+4 错 *a同a[0]是一个意思,a是数组名,首地址,*a就表示首元素 C *(a+4) 正确,等同于a[4] 。 a是数组名,首地址,a+0是第一个元素的地址,a+1是第二个,。。。a+4是第5个元素的地址, 再*操...
c语言数组问题
问一:c语言开辟数组,如果里面存的是整数,那么没有复制之前,数组中默认的值为零,还是乱码。答:C语言声明数组变量时,只分配相应的空间和地址,而不对里面存放的数据初始化。不管是int、float、还是char型等,即里面存的无论是整数、小数还是字符,再没有复赋值之前,数组中默认的值都是乱码,而不...
C语言的数组和指针问题,谢谢高手的解答!
总结,问题的关键在于,数组名相当于一个指向于这个数组第一个元素的指针。3)所以,int A[2][3][4]={0};A是一个三维数组,其中A[0]和A[1]都是它的元素,A[0]是第一个元素。所以, A是一个三级指针,指向了这个数组的第一个元素A[0],而A[0]是一3*4的二维数组。而A[0]是一个...
C语言,关于求数组长度的问题!
一、如果参数是指针变量(无论什么类型的指针)其结果都是4 二、如果参数是是数组,会返回数组所占空间的大小,即:int a[n] ; sizeof(a)=n*sizeof(int) ;三、如果参数是个变量类型,则会返回这个类型所占空间的大小。sizeof(char)=1 sizeof(int)=4 sizeof(double)=8 具体一个变量类型所...
c语言的一道关于数组的编程题
⑶如果上一个数的行数为1,则下一个数的行数为n,列数加1。如果上一个数的列数的n时,下一个数的列数为1,行数减1。 ⑷如果按上面的规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。include <stdio.h> #define N 16 \/\/N可修改 int main()...
c语言二维数组问题求解
c语言的数组在定义时的方括号里的数字就是数组的大小,比如 char ch[100],数组大小就是100,但是多数组进行操作时,是从0开始的,ch[0],就是第一个,ch[99]是第100个。这道题目 int x[2][3],表示一个2行3列的二维数组,所以c是正确的 ...
c语言关于数组的一个问题
纠正楼上一个说法,注意此处是个语义错误但并不是语法错误;实际编译中编译器可能会出warning但编译是可以通过的,因为c是个弱类型语言,指针和char都被视作数值类型,能够进行各类自动转换。关于题主的问题,注意此处加的是'3'而不是3,即ascii码的51。str偏移51实际造成数组越界。