c的一些学习感悟(字符变量和字符指针)

单独使用:

char n;

时,只是声明了一个可以储存一个字符数组的变量,

但声明时在n后加下标[ x]//x为整型常量或变量//后,

char n[x];
//x为整型常量

则所下标值x就相当与声明了多少地址(可以向字符变量输入多少字符);

当在声明时可用

char n[x] = {"abc"};

char n[x] = {'a','b','c','\0'};


来为字符数组赋值

(单引号里包含字符,双引号里包含字符串)

但字符数组不能直接用“="向其赋值字符串,将一个字符数组用=附在另一个字符数组上也是错误的

char n[x] = "abc"//错误//

............................................................

   char n[x],m[y];
...
...
 n = m;//错误//

要用

char n[x] = 'a';
的方式一个一个将字符常量附在字符数组上
(可用循环结构赋值)

for(int i = 0;i < 10;i++)
{
n[i] = m[i]
}
*在声明字符数组时,如

char n[x];
时,n为字符数组中第一个字符的地址

在多维数组中,n后跟上总维数减一的下标可以表示n前面的下标所指定本行的初始地址

如二维数组

 char n[10][10];
中,用

n[5]
就可以表示第5行的初始地址,可用此进行相关指针操作。



在使用指向字符的指针中,

char *m ;
char n[10];

与其他类指针相同,用

m = n
可以将n的第一个字符的地址(初始地址)附给m。

*(m+x)
读取第(x+1)个字符


也可直接对字符指针赋值,不过此时是将字符串常量的地址附到指针中,

并且这些字符串常量并没有相应的字符变量。

char *m;
m = "abc";

读取时,可直接用

printf("%c",*m);
不过此时,m为初始地址,也就是说此时打印出的为a

想要把后面地址储存的常量打印出来,也可用

printf("%c",*(m+x));//x为常量
和循环来输出相应的的字符。

这是我的第一篇文章,今天被字符给弄晕了,现在写写本人对字符变量相关的感悟,如有错误,请诸位指正。(我还是个新手可怜

谢谢阅读!大笑


怎么格式变成这个样子了,好绝望啊。。。。。。。。。。。





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值