30/09/2018, 17:09

Khai báo char cname[5][8]; và char *cptr[5]; khác nhau như thế nào?

khai báo con trỏ này có ý nghĩa gì ạ

char cname[5][8];  
char *cptr[5];
Phạm Hoàng Tuấn viết 19:12 ngày 30/09/2018

char cname[5][8];

Khai báo mảng 2 chiều gồm 5 dòng. 8 cột

char *cptr[5];

Nếu mình k lầm thì đây là khai báo 1 mảng gồm 5 phần tử, mỗi phần từ là 1 con trỏ kiểu char

Thất Học viết 19:14 ngày 30/09/2018
int icount=0;
 while (icount < 5)   
    {   printf("Nhap vao ten nguoi thu %d: ", icount + 1);  
 gets(cname[icount]);  
 cptr[icount++] = cname[icount];    

tại chỗ này khi icount=0 thì cptr[1]=cname[0]
đúng không

Phạm Hoàng Tuấn viết 19:09 ngày 30/09/2018

cptr[icount++] = cname[icount];

khi icount=0 thì cptr[0]=cname[0]. Sau dòng lệnh này thì iCount=1

Thất Học viết 19:13 ngày 30/09/2018

thanks you so much

Thất Học viết 19:09 ngày 30/09/2018

#include<iostream>
using namespace std;
int main(){int i=0;
	char mang[5][5]={"toi","ten","la","ng","duy"};
	char *ptr[4];
ptr[0]=mang[0];
		ptr[1]=mang[1];
			ptr[2]=mang[2];
				ptr[3]=mang[3];

					ptr[4]=mang[4];
//for(i=0;i<5;i++)
//cout<<i<<endl;
for(i=0;i<5;i++)
	cout<<ptr[i]<<endl;
	return 0;
}

cho em hỏi tại sao khi chạy nó lại không in chuỗi “tôi” mà lại in chuỗi "duy"vậy

Thành Phạm viết 19:18 ngày 30/09/2018

sửa lại code đi bạn, khó nhìn quá

Bài liên quan
0