字符数组,指针随记(11.30更新)

char s[]="hello";
//&s是存放s首地址的地址
//&s[0]是首元素的地址,也是数组的首地址,&s[0]等价于s,s[0]仅仅是个字符
//s+1偏移一个单位,输出ello
//&[2]输出字符串llo,&[3]输出字符串lo,(输出的是字符串)
char *s[5]={"h","e","l","l","o"};//声明指针数组,每一个元素都是一个指针
//&s[1],&s[2]是不同的地址值

 // 这里解决一下流光的疑惑
char s[6]={'h','e','l','l','o'}; 
char *p[6];
p[i]=&s[i];// 这里不写循环了,p[i]储存s[i]的地址
//若要输出单个字符的地址,p[i]是不行的(会输出i后的字符)
//正确的表达式:(void*)p[i]
//c++把cout<<字符型指针用于输出字符串, 即编译器把他解释为输出字符串中的字符
// 要想输出地址,强制转换为别的类型即可(int什么的也行)
char (*s)[4];//数组指针(在二维数组是行指针),s是char[4]类型的



2021年 November 24日|23:51  作者:
目录: 提问、复习等 标签:,, ,
欢迎留下你的评论~~
订阅
通知
guest
0 Comments
内嵌回复
查看所有评论